diff options
84 files changed, 3294 insertions, 1187 deletions
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 470db6efaeb..a031d99becb 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -176,7 +176,7 @@ static void __init pseries_mpic_init_IRQ(void) return; cascade_irq = irq_of_parse_and_map(cascade, 0); - if (cascade == NO_IRQ) { + if (cascade_irq == NO_IRQ) { printk(KERN_ERR "mpic: failed to map cascade interrupt"); return; } diff --git a/arch/s390/Makefile b/arch/s390/Makefile index 68441e0e74b..143ed8e154a 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@ -19,7 +19,7 @@ CFLAGS += -m31 AFLAGS += -m31 UTS_MACHINE := s390 STACK_SIZE := 8192 -CHECKFLAGS += -D__s390__ +CHECKFLAGS += -D__s390__ -msize-long else LDFLAGS := -m elf64_s390 MODFLAGS += -fpic -D__PIC__ diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 9a13b24ee1a..8b8f136d9cc 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c @@ -295,8 +295,8 @@ static ssize_t sys_ipl_device_show(struct kset *kset, char *page) static struct subsys_attribute sys_ipl_device_attr = __ATTR(device, S_IRUGO, sys_ipl_device_show, NULL); -static ssize_t ipl_parameter_read(struct kobject *kobj, char *buf, loff_t off, - size_t count) +static ssize_t ipl_parameter_read(struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) { unsigned int size = IPL_PARMBLOCK_SIZE; @@ -317,8 +317,8 @@ static struct bin_attribute ipl_parameter_attr = { .read = &ipl_parameter_read, }; -static ssize_t ipl_scp_data_read(struct kobject *kobj, char *buf, loff_t off, - size_t count) +static ssize_t ipl_scp_data_read(struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) { unsigned int size = IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len; void *scp_data = &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data; @@ -337,7 +337,7 @@ static struct bin_attribute ipl_scp_data_attr = { .mode = S_IRUGO, }, .size = PAGE_SIZE, - .read = &ipl_scp_data_read, + .read = ipl_scp_data_read, }; /* FCP ipl device attributes */ diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index fcde9bab5b9..1c77e14480d 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -560,7 +560,7 @@ config I2C_VERSATILE will be called i2c-versatile. config I2C_ACORN - bool "Acorn IOC/IOMD I2C bus support" + tristate "Acorn IOC/IOMD I2C bus support" depends on ARCH_ACORN default y select I2C_ALGOBIT diff --git a/drivers/i2c/busses/i2c-acorn.c b/drivers/i2c/busses/i2c-acorn.c index 09bd7f40b90..7c2be3558a2 100644 --- a/drivers/i2c/busses/i2c-acorn.c +++ b/drivers/i2c/busses/i2c-acorn.c @@ -94,4 +94,4 @@ static int __init i2c_ioc_init(void) return i2c_bit_add_bus(&ioc_ops); } -__initcall(i2c_ioc_init); +module_init(i2c_ioc_init); diff --git a/drivers/i2c/chips/ds1682.c b/drivers/i2c/chips/ds1682.c index 25fd4676fb1..5879f0f2549 100644 --- a/drivers/i2c/chips/ds1682.c +++ b/drivers/i2c/chips/ds1682.c @@ -140,8 +140,8 @@ static const struct attribute_group ds1682_group = { /* * User data attribute */ -static ssize_t ds1682_eeprom_read(struct kobject *kobj, char *buf, loff_t off, - size_t count) +static ssize_t ds1682_eeprom_read(struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) { struct i2c_client *client = kobj_to_i2c_client(kobj); int rc; @@ -163,8 +163,8 @@ static ssize_t ds1682_eeprom_read(struct kobject *kobj, char *buf, loff_t off, return count; } -static ssize_t ds1682_eeprom_write(struct kobject *kobj, char *buf, loff_t off, - size_t count) +static ssize_t ds1682_eeprom_write(struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) { struct i2c_client *client = kobj_to_i2c_client(kobj); diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c index 444a0b84f5b..c89b5f4b2d0 100644 --- a/drivers/ide/arm/icside.c +++ b/drivers/ide/arm/icside.c @@ -18,10 +18,10 @@ #include <linux/device.h> #include <linux/init.h> #include <linux/scatterlist.h> +#include <linux/io.h> #include <asm/dma.h> #include <asm/ecard.h> -#include <asm/io.h> #define ICS_IDENT_OFFSET 0x2280 diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index c4d3d4131f0..51a12062ed3 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c @@ -283,7 +283,7 @@ static ssize_t fw_show_##class##_##td_kv (struct device *dev, struct device_attr memcpy(buf, \ CSR1212_TEXTUAL_DESCRIPTOR_LEAF_DATA(class->td_kv), \ len); \ - while ((buf + len - 1) == '\0') \ + while (buf[len - 1] == '\0') \ len--; \ buf[len++] = '\n'; \ buf[len] = '\0'; \ diff --git a/drivers/net/ax88796.c b/drivers/net/ax88796.c index d19874bf070..1d882360b34 100644 --- a/drivers/net/ax88796.c +++ b/drivers/net/ax88796.c @@ -459,7 +459,7 @@ static int ax_open(struct net_device *dev) struct ei_device *ei_local = netdev_priv(dev); int ret; - dev_dbg(ax->dev, "%s: open\n", dev->name); + dev_dbg(&ax->dev->dev, "%s: open\n", dev->name); ret = request_irq(dev->irq, ax_ei_interrupt, 0, dev->name, dev); if (ret) @@ -492,7 +492,7 @@ static int ax_close(struct net_device *dev) struct ax_device *ax = to_ax_dev(dev); struct ei_device *ei_local = netdev_priv(dev); - dev_dbg(ax->dev, "%s: close\n", dev->name); + dev_dbg(&ax->dev->dev, "%s: close\n", dev->name); /* turn the phy off */ diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c index 7dcd138b0fe..f87d76981ab 100644 --- a/drivers/net/tulip/tulip_core.c +++ b/drivers/net/tulip/tulip_core.c @@ -1274,7 +1274,7 @@ static int __devinit tulip_init_one (struct pci_dev *pdev, if (pdev->vendor == 0x1282 && pdev->device == 0x9100) { /* Read Chip revision */ - if (pdev->revision < 0x02000030) + if (pdev->revision < 0x30) { printk(KERN_ERR PFX "skipping early DM9100 with Crc bug (use dmfe)\n"); return -ENODEV; diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index 740a2194fdd..ca24299a26c 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c @@ -15,7 +15,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include <asm/unaligned.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h> @@ -26,6 +25,7 @@ #include <linux/usb.h> #include <linux/workqueue.h> #include <net/ieee80211.h> +#include <asm/unaligned.h> #include "zd_def.h" #include "zd_netdev.h" diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig index ab9c3e5a7c1..3f6e176e6ea 100644 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig @@ -16,6 +16,7 @@ config POWER_SUPPLY_DEBUG config PDA_POWER tristate "Generic PDA/phone power driver" + depends on !S390 help Say Y here to enable generic power driver for PDAs and phones with one or two external power supplies (AC/USB) connected to main and diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c index c0a962bb5f2..0174a322e00 100644 --- a/drivers/usb/gadget/m66592-udc.c +++ b/drivers/usb/gadget/m66592-udc.c @@ -937,6 +937,7 @@ static void get_status(struct m66592 *m66592, struct usb_ctrlrequest *ctrl) *m66592->ep0_buf = status; m66592->ep0_req->buf = m66592->ep0_buf; m66592->ep0_req->length = 2; + /* AV: what happens if we get called again before that gets through? */ m66592_queue(m66592->gadget.ep0, m66592->ep0_req, GFP_KERNEL); } @@ -1254,24 +1255,6 @@ static void m66592_free_request(struct usb_ep *_ep, struct usb_request *_req) kfree(req); } -static void *m66592_alloc_buffer(struct usb_ep *_ep, unsigned bytes, - dma_addr_t *dma, gfp_t gfp_flags) -{ - void *buf; - - buf = kzalloc(bytes, gfp_flags); - if (dma) - *dma = virt_to_bus(buf); - - return buf; -} - -static void m66592_free_buffer(struct usb_ep *_ep, void *buf, - dma_addr_t dma, unsigned bytes) -{ - kfree(buf); -} - static int m66592_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags) { @@ -1378,9 +1361,6 @@ static struct usb_ep_ops m66592_ep_ops = { .alloc_request = m66592_alloc_request, .free_request = m66592_free_request, - .alloc_buffer = m66592_alloc_buffer, - .free_buffer = m66592_free_buffer, - .queue = m66592_queue, .dequeue = m66592_dequeue, @@ -1603,11 +1583,12 @@ static int __init m66592_probe(struct platform_device *pdev) the_controller = m66592; + /* AV: leaks */ m66592->ep0_req = m66592_alloc_request(&m66592->ep[0].ep, GFP_KERNEL); if (m66592->ep0_req == NULL) goto clean_up; - m66592->ep0_buf = m66592_alloc_buffer(&m66592->ep[0].ep, 2, NULL, - GFP_KERNEL); + /* AV: leaks, and do we really need it separately allocated? */ + m66592->ep0_buf = kzalloc(2, GFP_KERNEL); if (m66592->ep0_buf == NULL) goto clean_up; diff --git a/drivers/w1/slaves/w1_ds2760.c b/drivers/w1/slaves/w1_ds2760.c index 88a37fbccc3..1f2b1a4d5fb 100644 --- a/drivers/w1/slaves/w1_ds2760.c +++ b/drivers/w1/slaves/w1_ds2760.c @@ -68,8 +68,8 @@ int w1_ds2760_write(struct device *dev, char *buf, int addr, size_t count) return w1_ds2760_io(dev, buf, addr, count, 1); } -static ssize_t w1_ds2760_read_bin(struct kobject *kobj, char *buf, loff_t off, - size_t count) +static ssize_t w1_ds2760_read_bin(struct kobject *kobj, struct bin_attribute *attr, + char *buf, loff_t off, size_t count) { struct device *dev = container_of(kobj, struct device, kobj); return w1_ds2760_read(dev, buf, off, count); diff --git a/fs/coda/dir.c b/fs/coda/dir.c index 9ddf5ed6216..898a86dde8f 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c @@ -470,7 +470,7 @@ int coda_readdir(struct file *coda_file, void *dirent, filldir_t filldir) ret = -ENOENT; if (!IS_DEADDIR(host_inode)) { - ret = host_file->f_op->readdir(host_file, filldir, dirent); + ret = host_file->f_op->readdir(host_file, dirent, filldir); file_accessed(host_file); } } diff --git a/fs/xfs/Makefile-linux-2.6 b/fs/xfs/Makefile-linux-2.6 index b49989bb89a..e7a9a83f008 100644 --- a/fs/xfs/Makefile-linux-2.6 +++ b/fs/xfs/Makefile-linux-2.6 @@ -64,6 +64,7 @@ xfs-y += xfs_alloc.o \ xfs_dir2_sf.o \ xfs_error.o \ xfs_extfree_item.o \ + xfs_filestream.o \ xfs_fsops.o \ xfs_ialloc.o \ xfs_ialloc_btree.o \ @@ -77,6 +78,7 @@ xfs-y += xfs_alloc.o \ xfs_log.o \ xfs_log_recover.o \ xfs_mount.o \ + xfs_mru_cache.o \ xfs_rename.o \ xfs_trans.o \ xfs_trans_ail.o \ diff --git a/fs/xfs/linux-2.6/kmem.h b/fs/xfs/linux-2.6/kmem.h index 9ebabdf7829..4b6470cf87f 100644 --- a/fs/xfs/linux-2.6/kmem.h +++ b/fs/xfs/linux-2.6/kmem.h @@ -100,25 +100,6 @@ kmem_zone_destroy(kmem_zone_t *zone) extern void *kmem_zone_alloc(kmem_zone_t *, unsigned int __nocast); extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast); -/* - * Low memory cache shrinkers - */ - -typedef struct shrinker *kmem_shaker_t; -typedef int (*kmem_shake_func_t)(int, gfp_t); - -static inline kmem_shaker_t -kmem_shake_register(kmem_shake_func_t sfunc) -{ - return set_shrinker(DEFAULT_SEEKS, sfunc); -} - |