mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Merge branch 'master' into next
Conflicts: fs/nfsd/nfs4recover.c Manually fixed above to use new creds API functions, e.g. nfs4_save_creds(). Signed-off-by: James Morris <[email protected]>
This commit is contained in:
commit
ec98ce480a
541 changed files with 8260 additions and 4545 deletions
|
|
@ -42,9 +42,9 @@ struct parisc_driver {
|
|||
#define to_parisc_driver(d) container_of(d, struct parisc_driver, drv)
|
||||
#define parisc_parent(d) to_parisc_device(d->dev.parent)
|
||||
|
||||
static inline char *parisc_pathname(struct parisc_device *d)
|
||||
static inline const char *parisc_pathname(struct parisc_device *d)
|
||||
{
|
||||
return d->dev.bus_id;
|
||||
return dev_name(&d->dev);
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
|
|
|||
|
|
@ -24,13 +24,12 @@ typedef int __kernel_daddr_t;
|
|||
typedef unsigned long __kernel_size_t;
|
||||
typedef long __kernel_ssize_t;
|
||||
typedef long __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
#else
|
||||
typedef unsigned int __kernel_size_t;
|
||||
typedef int __kernel_ssize_t;
|
||||
typedef int __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
#endif
|
||||
typedef long __kernel_time_t;
|
||||
typedef char * __kernel_caddr_t;
|
||||
|
||||
typedef unsigned short __kernel_uid16_t;
|
||||
|
|
|
|||
|
|
@ -47,8 +47,6 @@ struct pt_regs {
|
|||
|
||||
#define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS))
|
||||
|
||||
#define __ARCH_WANT_COMPAT_SYS_PTRACE
|
||||
|
||||
struct task_struct;
|
||||
#define arch_has_single_step() 1
|
||||
void user_disable_single_step(struct task_struct *task);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ struct hppa_dma_ops *hppa_dma_ops __read_mostly;
|
|||
EXPORT_SYMBOL(hppa_dma_ops);
|
||||
|
||||
static struct device root = {
|
||||
.bus_id = "parisc",
|
||||
.init_name = "parisc",
|
||||
};
|
||||
|
||||
static inline int check_dev(struct device *dev)
|
||||
|
|
@ -393,7 +393,8 @@ EXPORT_SYMBOL(print_pci_hwpath);
|
|||
static void setup_bus_id(struct parisc_device *padev)
|
||||
{
|
||||
struct hardware_path path;
|
||||
char *output = padev->dev.bus_id;
|
||||
char name[20];
|
||||
char *output = name;
|
||||
int i;
|
||||
|
||||
get_node_path(padev->dev.parent, &path);
|
||||
|
|
@ -404,6 +405,7 @@ static void setup_bus_id(struct parisc_device *padev)
|
|||
output += sprintf(output, "%u:", (unsigned char) path.bc[i]);
|
||||
}
|
||||
sprintf(output, "%u", (unsigned char) padev->hw_path);
|
||||
dev_set_name(&padev->dev, name);
|
||||
}
|
||||
|
||||
struct parisc_device * create_tree_node(char id, struct device *parent)
|
||||
|
|
|
|||
|
|
@ -183,10 +183,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||
* being 64 bit in both cases.
|
||||
*/
|
||||
|
||||
static long translate_usr_offset(long offset)
|
||||
static compat_ulong_t translate_usr_offset(compat_ulong_t offset)
|
||||
{
|
||||
if (offset < 0)
|
||||
return -1;
|
||||
return sizeof(struct pt_regs);
|
||||
else if (offset <= 32*4) /* gr[0..31] */
|
||||
return offset * 2 + 4;
|
||||
else if (offset <= 32*4+32*8) /* gr[0..31] + fr[0..31] */
|
||||
|
|
@ -194,7 +194,7 @@ static long translate_usr_offset(long offset)
|
|||
else if (offset < sizeof(struct pt_regs)/2 + 32*4)
|
||||
return offset * 2 + 4 - 32*8;
|
||||
else
|
||||
return -1;
|
||||
return sizeof(struct pt_regs);
|
||||
}
|
||||
|
||||
long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
||||
|
|
@ -209,7 +209,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
|||
if (addr & (sizeof(compat_uint_t)-1))
|
||||
break;
|
||||
addr = translate_usr_offset(addr);
|
||||
if (addr < 0)
|
||||
if (addr >= sizeof(struct pt_regs))
|
||||
break;
|
||||
|
||||
tmp = *(compat_uint_t *) ((char *) task_regs(child) + addr);
|
||||
|
|
@ -236,7 +236,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
|||
if (addr & (sizeof(compat_uint_t)-1))
|
||||
break;
|
||||
addr = translate_usr_offset(addr);
|
||||
if (addr < 0)
|
||||
if (addr >= sizeof(struct pt_regs))
|
||||
break;
|
||||
if (addr >= PT_FR0 && addr <= PT_FR31 + 4) {
|
||||
/* Special case, fp regs are 64 bits anyway */
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/bug.h>
|
||||
|
||||
#include <asm/assembly.h>
|
||||
|
|
@ -51,7 +50,7 @@
|
|||
DEFINE_SPINLOCK(pa_dbit_lock);
|
||||
#endif
|
||||
|
||||
void parisc_show_stack(struct task_struct *t, unsigned long *sp,
|
||||
static void parisc_show_stack(struct task_struct *task, unsigned long *sp,
|
||||
struct pt_regs *regs);
|
||||
|
||||
static int printbinary(char *buf, unsigned long x, int nbits)
|
||||
|
|
@ -121,18 +120,19 @@ static void print_fr(char *level, struct pt_regs *regs)
|
|||
|
||||
void show_regs(struct pt_regs *regs)
|
||||
{
|
||||
int i;
|
||||
int i, user;
|
||||
char *level;
|
||||
unsigned long cr30, cr31;
|
||||
|
||||
level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT;
|
||||
user = user_mode(regs);
|
||||
level = user ? KERN_DEBUG : KERN_CRIT;
|
||||
|
||||
print_gr(level, regs);
|
||||
|
||||
for (i = 0; i < 8; i += 4)
|
||||
PRINTREGS(level, regs->sr, "sr", RFMT, i);
|
||||
|
||||
if (user_mode(regs))
|
||||
if (user)
|
||||
print_fr(level, regs);
|
||||
|
||||
cr30 = mfctl(30);
|
||||
|
|
@ -145,14 +145,18 @@ void show_regs(struct pt_regs *regs)
|
|||
printk("%s CPU: %8d CR30: " RFMT " CR31: " RFMT "\n",
|
||||
level, current_thread_info()->cpu, cr30, cr31);
|
||||
printk("%s ORIG_R28: " RFMT "\n", level, regs->orig_r28);
|
||||
printk(level);
|
||||
print_symbol(" IAOQ[0]: %s\n", regs->iaoq[0]);
|
||||
printk(level);
|
||||
print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]);
|
||||
printk(level);
|
||||
print_symbol(" RP(r2): %s\n", regs->gr[2]);
|
||||
|
||||
parisc_show_stack(current, NULL, regs);
|
||||
if (user) {
|
||||
printk("%s IAOQ[0]: " RFMT "\n", level, regs->iaoq[0]);
|
||||
printk("%s IAOQ[1]: " RFMT "\n", level, regs->iaoq[1]);
|
||||
printk("%s RP(r2): " RFMT "\n", level, regs->gr[2]);
|
||||
} else {
|
||||
printk("%s IAOQ[0]: %pS\n", level, (void *) regs->iaoq[0]);
|
||||
printk("%s IAOQ[1]: %pS\n", level, (void *) regs->iaoq[1]);
|
||||
printk("%s RP(r2): %pS\n", level, (void *) regs->gr[2]);
|
||||
|
||||
parisc_show_stack(current, NULL, regs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -173,20 +177,15 @@ static void do_show_stack(struct unwind_frame_info *info)
|
|||
break;
|
||||
|
||||
if (__kernel_text_address(info->ip)) {
|
||||
printk("%s [<" RFMT ">] ", (i&0x3)==1 ? KERN_CRIT : "", info->ip);
|
||||
#ifdef CONFIG_KALLSYMS
|
||||
print_symbol("%s\n", info->ip);
|
||||
#else
|
||||
if ((i & 0x03) == 0)
|
||||
printk("\n");
|
||||
#endif
|
||||
printk(KERN_CRIT " [<" RFMT ">] %pS\n",
|
||||
info->ip, (void *) info->ip);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
printk("\n");
|
||||
printk(KERN_CRIT "\n");
|
||||
}
|
||||
|
||||
void parisc_show_stack(struct task_struct *task, unsigned long *sp,
|
||||
static void parisc_show_stack(struct task_struct *task, unsigned long *sp,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
struct unwind_frame_info info;
|
||||
|
|
|
|||
Loading…
Reference in a new issue