Commit 7f357f99 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 1cdfa0d9 caf39373
...@@ -1457,11 +1457,8 @@ L: linux-mips@linux-mips.org ...@@ -1457,11 +1457,8 @@ L: linux-mips@linux-mips.org
S: Maintained S: Maintained
MISCELLANEOUS MCA-SUPPORT MISCELLANEOUS MCA-SUPPORT
P: David Weinehall P: James Bottomley
M: Project MCA Team <mcalinux@acc.umu.se> M: jejb@steeleye.com
M: David Weinehall <tao@acc.umu.se>
W: http://www.acc.umu.se/~tao/
W: http://www.acc.umu.se/~mcalinux/
L: linux-kernel@vger.kernel.org L: linux-kernel@vger.kernel.org
S: Maintained S: Maintained
......
...@@ -809,7 +809,7 @@ static int cciss_ioctl(struct inode *inode, struct file *filep, ...@@ -809,7 +809,7 @@ static int cciss_ioctl(struct inode *inode, struct file *filep,
luninfo.num_opens = drv->usage_count; luninfo.num_opens = drv->usage_count;
luninfo.num_parts = 0; luninfo.num_parts = 0;
/* count partitions 1 to 15 with sizes > 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]) if (!disk->part[i])
continue; continue;
if (disk->part[i]->nr_sects != 0) if (disk->part[i]->nr_sects != 0)
......
...@@ -30,24 +30,24 @@ I2C_CLIENT_INSMOD; ...@@ -30,24 +30,24 @@ I2C_CLIENT_INSMOD;
/* insmod options used at init time => read/only */ /* insmod options used at init time => read/only */
static unsigned int type = UNSET; static unsigned int type = UNSET;
static unsigned int addr = 0; static unsigned int addr = 0;
module_param(type, int, 444); module_param(type, int, 0444);
module_param(addr, int, 444); module_param(addr, int, 0444);
/* insmod options used at runtime => read/write */ /* insmod options used at runtime => read/write */
static unsigned int debug = 0; static unsigned int debug = 0;
static unsigned int tv_antenna = 1; static unsigned int tv_antenna = 1;
static unsigned int radio_antenna = 0; static unsigned int radio_antenna = 0;
static unsigned int optimize_vco = 1; static unsigned int optimize_vco = 1;
module_param(debug, int, 644); module_param(debug, int, 0644);
module_param(tv_antenna, int, 644); module_param(tv_antenna, int, 0644);
module_param(radio_antenna, int, 644); module_param(radio_antenna, int, 0644);
module_param(optimize_vco, int, 644); module_param(optimize_vco, int, 0644);
static unsigned int tv_range[2] = { 44, 958 }; static unsigned int tv_range[2] = { 44, 958 };
static unsigned int radio_range[2] = { 65, 108 }; static unsigned int radio_range[2] = { 65, 108 };
module_param_array(tv_range, int, NULL, 644); module_param_array(tv_range, int, NULL, 0644);
module_param_array(radio_range, int, NULL, 644); module_param_array(radio_range, int, NULL, 0644);
MODULE_DESCRIPTION("device driver for various TV and TV+FM radio tuners"); MODULE_DESCRIPTION("device driver for various TV and TV+FM radio tuners");
MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer"); MODULE_AUTHOR("Ralph Metzler, Gerd Knorr, Gunther Mayer");
......
...@@ -2204,33 +2204,38 @@ static int __devinit e100_probe(struct pci_dev *pdev, ...@@ -2204,33 +2204,38 @@ static int __devinit e100_probe(struct pci_dev *pdev,
goto err_out_disable_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))) { if((err = pci_set_dma_mask(pdev, 0xFFFFFFFFULL))) {
DPRINTK(PROBE, ERR, "No usable DMA configuration, aborting.\n"); DPRINTK(PROBE, ERR, "No usable DMA configuration, aborting.\n");
goto err_out_iounmap; goto err_out_free_res;
} }
SET_MODULE_OWNER(netdev); SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev); 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) if(ent->driver_data)
nic->flags |= ich; nic->flags |= ich;
else else
nic->flags &= ~ich; nic->flags &= ~ich;
e100_get_defaults(nic);
spin_lock_init(&nic->cb_lock); spin_lock_init(&nic->cb_lock);
spin_lock_init(&nic->cmd_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); init_timer(&nic->watchdog);
nic->watchdog.function = e100_watchdog; nic->watchdog.function = e100_watchdog;
nic->watchdog.data = (unsigned long)nic; nic->watchdog.data = (unsigned long)nic;
...@@ -2243,8 +2248,6 @@ static int __devinit e100_probe(struct pci_dev *pdev, ...@@ -2243,8 +2248,6 @@ static int __devinit e100_probe(struct pci_dev *pdev,
goto err_out_iounmap; goto err_out_iounmap;
} }
e100_get_defaults(nic);
e100_hw_reset(nic);
e100_phy_init(nic); e100_phy_init(nic);
if((err = e100_eeprom_load(nic))) if((err = e100_eeprom_load(nic)))
......
...@@ -440,11 +440,11 @@ static int __devinit correct_chipset(struct atyfb_par *par) ...@@ -440,11 +440,11 @@ static int __devinit correct_chipset(struct atyfb_par *par)
switch(par->pci_id) { switch(par->pci_id) {
#ifdef CONFIG_FB_ATY_GX #ifdef CONFIG_FB_ATY_GX
case PCI_CHIP_MACH64GX: case PCI_CHIP_MACH64GX:
if(type != 0x00d7); if(type != 0x00d7)
return -ENODEV; return -ENODEV;
break; break;
case PCI_CHIP_MACH64CX: case PCI_CHIP_MACH64CX:
if(type != 0x0057); if(type != 0x0057)
return -ENODEV; return -ENODEV;
break; break;
#endif #endif
......
...@@ -725,7 +725,10 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) ...@@ -725,7 +725,10 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
fb_set_cmap(&info->cmap, info); fb_set_cmap(&info->cmap, info);
fb_var_to_videomode(&mode, &info->var); 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) { if (info->flags & FBINFO_MISC_MODECHANGEUSER) {
struct fb_event event; struct fb_event event;
......
...@@ -130,7 +130,7 @@ __asm__( \ ...@@ -130,7 +130,7 @@ __asm__( \
"push $" #nr "-256 ; " \ "push $" #nr "-256 ; " \
"jmp common_interrupt"); "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) { static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) {
if (IO_APIC_IRQ(i)) if (IO_APIC_IRQ(i))
send_IPI_self(IO_APIC_VECTOR(i)); send_IPI_self(IO_APIC_VECTOR(i));
......
...@@ -211,10 +211,10 @@ int user_shm_lock(size_t size, struct user_struct *user) ...@@ -211,10 +211,10 @@ int user_shm_lock(size_t size, struct user_struct *user)
unsigned long lock_limit, locked; unsigned long lock_limit, locked;
int allowed = 0; int allowed = 0;
spin_lock(&shmlock_user_lock); locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
locked = size >> PAGE_SHIFT;
lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
lock_limit >>= PAGE_SHIFT; lock_limit >>= PAGE_SHIFT;
spin_lock(&shmlock_user_lock);
if (locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) if (locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK))
goto out; goto out;
get_uid(user); get_uid(user);
...@@ -228,7 +228,7 @@ int user_shm_lock(size_t size, struct user_struct *user) ...@@ -228,7 +228,7 @@ int user_shm_lock(size_t size, struct user_struct *user)
void user_shm_unlock(size_t size, struct user_struct *user) void user_shm_unlock(size_t size, struct user_struct *user)
{ {
spin_lock(&shmlock_user_lock); 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); spin_unlock(&shmlock_user_lock);
free_uid(user); free_uid(user);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment