diff options
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/nvram.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c index 944f05fddacd..eff1e3f1b3a2 100644 --- a/drivers/char/nvram.c +++ b/drivers/char/nvram.c @@ -302,6 +302,8 @@ static long nvram_misc_ioctl(struct file *file, unsigned int cmd, if (part < pmac_nvram_OF || part > pmac_nvram_NR) return -EINVAL; offset = pmac_get_partition(part); + if (offset < 0) + return -EINVAL; if (copy_to_user((void __user *)arg, &offset, sizeof(offset)) != 0) return -EFAULT; @@ -309,6 +311,7 @@ static long nvram_misc_ioctl(struct file *file, unsigned int cmd, } #endif break; +#ifdef CONFIG_PPC32 case IOC_NVRAM_SYNC: if (ppc_md.nvram_sync != NULL) { mutex_lock(&nvram_mutex); @@ -317,6 +320,7 @@ static long nvram_misc_ioctl(struct file *file, unsigned int cmd, } ret = 0; break; +#endif #elif defined(CONFIG_X86) || defined(CONFIG_M68K) case NVRAM_INIT: /* initialize NVRAM contents and checksum */ |