diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-28 23:52:14 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-28 23:52:14 -0800 |
| commit | 7f357f99380cf5927ddd66e49d2ebc23f19814eb (patch) | |
| tree | 83a6fe1cb66f901581d336f5fe041f1f11cc7edb | |
| parent | 1cdfa0d9da1fa7df23ba6dee3267420845d192b2 (diff) | |
| parent | caf393738350f8165b1510aefc0b61e03fa96ab7 (diff) | |
Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
| -rw-r--r-- | MAINTAINERS | 7 | ||||
| -rw-r--r-- | drivers/block/cciss.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/tuner.c | 16 | ||||
| -rw-r--r-- | drivers/net/e100.c | 31 | ||||
| -rw-r--r-- | drivers/video/aty/atyfb_base.c | 4 | ||||
| -rw-r--r-- | drivers/video/fbmem.c | 5 | ||||
| -rw-r--r-- | include/asm-x86_64/hw_irq.h | 2 | ||||
| -rw-r--r-- | mm/mlock.c | 6 |
8 files changed, 38 insertions, 35 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 80a5092e11b8..30993e54f19c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1457,11 +1457,8 @@ L: linux-mips@linux-mips.org S: Maintained MISCELLANEOUS MCA-SUPPORT -P: David Weinehall -M: Project MCA Team <mcalinux@acc.umu.se> -M: David Weinehall <tao@acc.umu.se> -W: http://www.acc.umu.se/~tao/ -W: http://www.acc.umu.se/~mcalinux/ +P: James Bottomley +M: jejb@steeleye.com L: linux-kernel@vger.kernel.org S: Maintained diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index fb7774a4baf9..f2c29756e6ed 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -809,7 +809,7 @@ static int cciss_ioctl(struct inode *inode, struct file *filep, luninfo.num_opens = drv->usage_count; luninfo.num_parts = 0; /* count partitions 1 to 15 with sizes > 0 */ - for(i=1; i <MAX_PART; i++) { + for (i = 0; i < MAX_PART - 1; i++) { if (!disk->part[i]) continue; if (disk->part[i]->nr_sects != 0) diff --git a/drivers/media/video/tuner.c b/drivers/media/video/tuner.c index faf6c56c60a1..ec6eb43caafa 100644 --- a/drivers/media/video/tuner.c +++ b/drivers/media/video/tuner.c @@ -30,24 +30,24 @@ I2C_CLIENT_INSMOD; /* insmod options used at init time => read/only */ static unsigned int type = UNSET; static unsigned int addr = 0; -module_param(type, int, 444); -module_param(addr, int, 444); +module_param(type, int, 0444); +module_param(addr, int, 0444); /* insmod options used at runtime => read/write */ static unsigned int debug = 0; static unsigned int tv_antenna = 1; static unsigned int radio_antenna = 0; static unsigned int optimize_vco = 1; -module_param(debug, int, 644); -module_param(tv_antenna, int, 644); -module_param(radio_antenna, int, 644); -module_param(optimize_vco, int, 644); +module_param(debug, int, 0644); +module_param(tv_antenna, int, 0644); +module_param(radio_antenna, int, 0644); +module_param(optimize_vco, int, 0644); static unsigned int tv_range[2] = { 44, 958 }; static unsigned int radio_range[2] = { 65, 108 }; -module_param_array(tv_range, int, NULL, 644); -module_param_array(radio_range, int, NULL, 644); +module_param_array(tv_range, int, NULL, 0644); +module_param_array(radio_range, int, NULL, 0644); MODULE_DESCRIPTION("device driver for various TV and TV+FM radio tuners"); MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer"); diff --git a/drivers/net/e100.c b/drivers/net/e100.c index af78c85f11d9..c075355aabbb 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -2204,33 +2204,38 @@ static int __devinit e100_probe(struct pci_dev *pdev, goto err_out_disable_pdev; } - nic->csr = ioremap(pci_resource_start(pdev, 0), sizeof(struct csr)); - if(!nic->csr) { - DPRINTK(PROBE, ERR, "Cannot map device registers, aborting.\n"); - err = -ENOMEM; - goto err_out_free_res; - } - - e100_hw_reset(nic); - - pci_set_master(pdev); - if((err = pci_set_dma_mask(pdev, 0xFFFFFFFFULL))) { DPRINTK(PROBE, ERR, "No usable DMA configuration, aborting.\n"); - goto err_out_iounmap; + goto err_out_free_res; } SET_MODULE_OWNER(netdev); SET_NETDEV_DEV(netdev, &pdev->dev); + nic->csr = ioremap(pci_resource_start(pdev, 0), sizeof(struct csr)); + if(!nic->csr) { + DPRINTK(PROBE, ERR, "Cannot map device registers, aborting.\n"); + err = -ENOMEM; + goto err_out_free_res; + } + if(ent->driver_data) nic->flags |= ich; else nic->flags &= ~ich; + e100_get_defaults(nic); + spin_lock_init(&nic->cb_lock); spin_lock_init(&nic->cmd_lock); + /* Reset the device before pci_set_master() in case device is in some + * funky state and has an interrupt pending - hint: we don't have the + * interrupt handler registered yet. */ + e100_hw_reset(nic); + + pci_set_master(pdev); + init_timer(&nic->watchdog); nic->watchdog.function = e100_watchdog; nic->watchdog.data = (unsigned long)nic; @@ -2243,8 +2248,6 @@ static int __devinit e100_probe(struct pci_dev *pdev, goto err_out_iounmap; } - e100_get_defaults(nic); - e100_hw_reset(nic); e100_phy_init(nic); if((err = e100_eeprom_load(nic))) diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index 11d5466abe47..b78b77f064ae 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c @@ -440,11 +440,11 @@ static int __devinit correct_chipset(struct atyfb_par *par) switch(par->pci_id) { #ifdef CONFIG_FB_ATY_GX case PCI_CHIP_MACH64GX: - if(type != 0x00d7); + if(type != 0x00d7) return -ENODEV; break; case PCI_CHIP_MACH64CX: - if(type != 0x0057); + if(type != 0x0057) return -ENODEV; break; #endif diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index fc10c0e4d9dc..e2b1e87c7792 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -725,7 +725,10 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) fb_set_cmap(&info->cmap, info); fb_var_to_videomode(&mode, &info->var); - fb_add_videomode(&mode, &info->modelist); + + if (info->modelist.prev && info->modelist.next && + !list_empty(&info->modelist)) + fb_add_videomode(&mode, &info->modelist); if (info->flags & FBINFO_MISC_MODECHANGEUSER) { struct fb_event event; diff --git a/include/asm-x86_64/hw_irq.h b/include/asm-x86_64/hw_irq.h index 4a42816524a8..767e11abd5c5 100644 --- a/include/asm-x86_64/hw_irq.h +++ b/include/asm-x86_64/hw_irq.h @@ -130,7 +130,7 @@ __asm__( \ "push $" #nr "-256 ; " \ "jmp common_interrupt"); -#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) +#if defined(CONFIG_X86_IO_APIC) static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) { if (IO_APIC_IRQ(i)) send_IPI_self(IO_APIC_VECTOR(i)); diff --git a/mm/mlock.c b/mm/mlock.c index 4a00277487ba..a75902f0485e 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -211,10 +211,10 @@ int user_shm_lock(size_t size, struct user_struct *user) unsigned long lock_limit, locked; int allowed = 0; - spin_lock(&shmlock_user_lock); - locked = size >> PAGE_SHIFT; + locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; lock_limit >>= PAGE_SHIFT; + spin_lock(&shmlock_user_lock); if (locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) goto out; get_uid(user); @@ -228,7 +228,7 @@ out: void user_shm_unlock(size_t size, struct user_struct *user) { spin_lock(&shmlock_user_lock); - user->locked_shm -= (size >> PAGE_SHIFT); + user->locked_shm -= (size + PAGE_SIZE - 1) >> PAGE_SHIFT; spin_unlock(&shmlock_user_lock); free_uid(user); } |
