Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b844718 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6:
  [PA-RISC] Fix time.c for new do_timer() calling convention
  [PA-RISC] Fix must_check warnings in drivers.c
  [PA-RISC] Fix parisc_newuname()
  [PA-RISC] Remove warning from pci.c
  [PA-RISC] Fix filldir warnings
  [PA-RISC] Fix sys32_sysctl
  [PA-RISC] Fix sba_iommu compilation
parents a43cdf08 1604f318
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ struct getdents_callback {
#define ROUND_UP(x) (((x)+sizeof(long)-1) & ~(sizeof(long)-1))

static int filldir(void * __buf, const char * name, int namlen, loff_t offset,
		ino_t ino, unsigned d_type)
		u64 ino, unsigned d_type)
{
	struct hpux_dirent * dirent;
	struct getdents_callback * buf = (struct getdents_callback *) __buf;
+8 −3
Original line number Diff line number Diff line
@@ -424,7 +424,10 @@ struct parisc_device * create_tree_node(char id, struct device *parent)
	/* make the generic dma mask a pointer to the parisc one */
	dev->dev.dma_mask = &dev->dma_mask;
	dev->dev.coherent_dma_mask = dev->dma_mask;
	device_register(&dev->dev);
	if (!device_register(&dev->dev)) {
		kfree(dev);
		return NULL;
	}

	return dev;
}
@@ -850,8 +853,10 @@ static void print_parisc_device(struct parisc_device *dev)
 */
void init_parisc_bus(void)
{
	bus_register(&parisc_bus_type);
	device_register(&root);
	if (!bus_register(&parisc_bus_type))
		panic("Could not register PA-RISC bus type\n");
	if (!device_register(&root))
		panic("Could not register PA-RISC root device\n");
	get_device(&root);
}

+1 −1
Original line number Diff line number Diff line
@@ -290,7 +290,7 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);
void pcibios_align_resource(void *data, struct resource *res,
				resource_size_t size, resource_size_t alignment)
{
	unsigned long mask, align;
	resource_size_t mask, align;

	DBG_RES("pcibios_align_resource(%s, (%p) [%lx,%lx]/%x, 0x%lx, 0x%lx)\n",
		pci_name(((struct pci_dev *) data)),
+10 −23
Original line number Diff line number Diff line
@@ -266,30 +266,17 @@ long parisc_personality(unsigned long personality)
	return err;
}

static inline int override_machine(char __user *mach) {
#ifdef CONFIG_COMPAT
	if (personality(current->personality) == PER_LINUX32) {
		if (__put_user(0, mach + 6) ||
		    __put_user(0, mach + 7))
			return -EFAULT;
	}

	return 0;
#else /*!CONFIG_COMPAT*/
	return 0;
#endif /*CONFIG_COMPAT*/
}

long parisc_newuname(struct new_utsname __user *utsname)
long parisc_newuname(struct new_utsname __user *name)
{
	int err = 0;
	int err = sys_newuname(name);

	down_read(&uts_sem);
	if (copy_to_user(utsname, &system_utsname, sizeof(*utsname)))
#ifdef CONFIG_COMPAT
	if (!err && personality(current->personality) == PER_LINUX32) {
		if (__put_user(0, name->machine + 6) ||
		    __put_user(0, name->machine + 7))
			err = -EFAULT;
	up_read(&uts_sem);

	err = override_machine(utsname->machine);
	}
#endif

	return (long)err;
	return err;
}
+13 −12
Original line number Diff line number Diff line
@@ -111,13 +111,14 @@ struct __sysctl_args32 {

asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args)
{
#ifndef CONFIG_SYSCTL_SYSCALL
	return -ENOSYS;
#else
	struct __sysctl_args32 tmp;
	int error;
	unsigned int oldlen32;
	size_t oldlen, *oldlenp = NULL;
	size_t oldlen, __user *oldlenp = NULL;
	unsigned long addr = (((long __force)&args->__unused[0]) + 7) & ~7;
	extern int do_sysctl(int *name, int nlen, void *oldval, size_t *oldlenp,
	       void *newval, size_t newlen);

	DBG(("sysctl32(%p)\n", args));

@@ -144,8 +145,9 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args)
	}

	lock_kernel();
	error = do_sysctl((int *)(u64)tmp.name, tmp.nlen, (void *)(u64)tmp.oldval,
			  oldlenp, (void *)(u64)tmp.newval, tmp.newlen);
	error = do_sysctl((int __user *)(u64)tmp.name, tmp.nlen,
			  (void __user *)(u64)tmp.oldval, oldlenp,
			  (void __user *)(u64)tmp.newval, tmp.newlen);
	unlock_kernel();
	if (oldlenp) {
		if (!error) {
@@ -157,10 +159,11 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args)
					error = -EFAULT;
			}
		}
		if (copy_to_user(&args->__unused[0], tmp.__unused, sizeof(tmp.__unused)))
		if (copy_to_user(args->__unused, tmp.__unused, sizeof(tmp.__unused)))
			error = -EFAULT;
	}
	return error;
#endif
}

#endif /* CONFIG_SYSCTL */
@@ -310,9 +313,8 @@ struct readdir32_callback {

#define ROUND_UP(x,a)	((__typeof__(x))(((unsigned long)(x) + ((a) - 1)) & ~((a) - 1)))
#define NAME_OFFSET(de) ((int) ((de)->d_name - (char __user *) (de)))
static int
filldir32 (void *__buf, const char *name, int namlen, loff_t offset, ino_t ino,
	   unsigned int d_type)
static int filldir32 (void *__buf, const char *name, int namlen,
			loff_t offset, u64 ino, unsigned int d_type)
{
	struct linux32_dirent __user * dirent;
	struct getdents32_callback * buf = (struct getdents32_callback *) __buf;
@@ -374,9 +376,8 @@ out:
	return error;
}

static int
fillonedir32 (void * __buf, const char * name, int namlen, loff_t offset, ino_t ino,
	      unsigned int d_type)
static int fillonedir32(void * __buf, const char * name, int namlen,
			loff_t offset, u64 ino, unsigned int d_type)
{
	struct readdir32_callback * buf = (struct readdir32_callback *) __buf;
	struct old_linux32_dirent __user * dirent;
Loading