diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2005-12-08 15:44:39 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-12-08 15:44:39 -0800 |
commit | b696389d003b5b2e21c004547c8ab4483635516d (patch) | |
tree | 5d243da8664e4b645f038b8f6fd9abbb554599ec /driver | |
parent | f4f9cbd90bd1f816d35e2529e6a6f397de2f867b (diff) | |
download | patches-b696389d003b5b2e21c004547c8ab4483635516d.tar.gz |
driver patches
Diffstat (limited to 'driver')
-rw-r--r-- | driver/aoe-skb_check-cleanup.patch | 38 | ||||
-rw-r--r-- | driver/aoe-type-cleanups.patch-added-to-mm-tree.patch | 299 | ||||
-rw-r--r-- | driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch | 169 |
3 files changed, 506 insertions, 0 deletions
diff --git a/driver/aoe-skb_check-cleanup.patch b/driver/aoe-skb_check-cleanup.patch new file mode 100644 index 0000000000000..2ae9e86c0b457 --- /dev/null +++ b/driver/aoe-skb_check-cleanup.patch @@ -0,0 +1,38 @@ +From akpm@osdl.org Wed Nov 30 15:21:12 2005 +Message-Id: <200511302319.jAUNJnoO015372@shell0.pdx.osdl.net> +From: Pekka Enberg <penberg@cs.helsinki.fi> +Subject: aoe: skb_check cleanup +To: penberg@cs.helsinki.fi, axboe@suse.de, greg@kroah.com, jgarzik@pobox.com +Date: Wed, 30 Nov 2005 15:21:08 -0800 + +This patch cleans up skb_check() to make it readable. + +Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> +Cc: Jeff Garzik <jgarzik@pobox.com> +Cc: Jens Axboe <axboe@suse.de> +Signed-off-by: Andrew Morton <akpm@osdl.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + drivers/block/aoe/aoenet.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +--- gregkh-2.6.orig/drivers/block/aoe/aoenet.c ++++ gregkh-2.6/drivers/block/aoe/aoenet.c +@@ -95,11 +95,12 @@ mac_addr(char addr[6]) + static struct sk_buff * + skb_check(struct sk_buff *skb) + { +- if (skb_is_nonlinear(skb)) +- if ((skb = skb_share_check(skb, GFP_ATOMIC))) +- if (skb_linearize(skb, GFP_ATOMIC) < 0) { +- dev_kfree_skb(skb); +- return NULL; ++ if (skb_is_nonlinear(skb)) { ++ skb = skb_share_check(skb, GFP_ATOMIC); ++ if (skb && skb_linearize(skb, GFP_ATOMIC) < 0) { ++ dev_kfree_skb(skb); ++ return NULL; ++ } + } + return skb; + } diff --git a/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch b/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch new file mode 100644 index 0000000000000..a5a58d3c6b9ca --- /dev/null +++ b/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch @@ -0,0 +1,299 @@ +From akpm@osdl.org Wed Nov 30 15:20:58 2005 +From: Pekka Enberg <penberg@cs.helsinki.fi> +Date: Wed, 30 Nov 2005 15:20:43 -0800 +Subject: aoe: type cleanups +To: penberg@cs.helsinki.fi, axboe@suse.de, greg@kroah.com, jgarzik@pobox.com +Message-Id: <200511302319.jAUNJOap015355@shell0.pdx.osdl.net> + +This patch replaces ulong with unsigned long and kmem_cache_t with struct +kmem_cache in drivers/block/aoe/. + +Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> +Cc: Jeff Garzik <jgarzik@pobox.com> +Cc: Jens Axboe <axboe@suse.de> +Signed-off-by: Andrew Morton <akpm@osdl.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + drivers/block/aoe/aoe.h | 28 ++++++++++++++-------------- + drivers/block/aoe/aoeblk.c | 10 +++++----- + drivers/block/aoe/aoechr.c | 6 +++--- + drivers/block/aoe/aoecmd.c | 16 ++++++++-------- + drivers/block/aoe/aoedev.c | 11 ++++++----- + drivers/block/aoe/aoemain.c | 6 +++--- + 6 files changed, 39 insertions(+), 38 deletions(-) + +--- gregkh-2.6.orig/drivers/block/aoe/aoeblk.c ++++ gregkh-2.6/drivers/block/aoe/aoeblk.c +@@ -12,7 +12,7 @@ + #include <linux/netdevice.h> + #include "aoe.h" + +-static kmem_cache_t *buf_pool_cache; ++static struct kmem_cache *buf_pool_cache; + + /* add attributes for our block devices in sysfs */ + static ssize_t aoedisk_show_state(struct gendisk * disk, char *page) +@@ -83,7 +83,7 @@ static int + aoeblk_open(struct inode *inode, struct file *filp) + { + struct aoedev *d; +- ulong flags; ++ unsigned long flags; + + d = inode->i_bdev->bd_disk->private_data; + +@@ -101,7 +101,7 @@ static int + aoeblk_release(struct inode *inode, struct file *filp) + { + struct aoedev *d; +- ulong flags; ++ unsigned long flags; + + d = inode->i_bdev->bd_disk->private_data; + +@@ -124,7 +124,7 @@ aoeblk_make_request(request_queue_t *q, + struct aoedev *d; + struct buf *buf; + struct sk_buff *sl; +- ulong flags; ++ unsigned long flags; + + blk_queue_bounce(q, &bio); + +@@ -210,7 +210,7 @@ aoeblk_gdalloc(void *vp) + { + struct aoedev *d = vp; + struct gendisk *gd; +- ulong flags; ++ unsigned long flags; + + gd = alloc_disk(AOE_PARTITIONS); + if (gd == NULL) { +--- gregkh-2.6.orig/drivers/block/aoe/aoechr.c ++++ gregkh-2.6/drivers/block/aoe/aoechr.c +@@ -19,7 +19,7 @@ enum { + }; + + struct aoe_chardev { +- ulong minor; ++ unsigned long minor; + char name[32]; + }; + +@@ -67,7 +67,7 @@ aoechr_error(char *msg) + { + struct ErrMsg *em; + char *mp; +- ulong flags, n; ++ unsigned long flags, n; + + n = strlen(msg); + +@@ -147,7 +147,7 @@ aoechr_read(struct file *filp, char __us + char *mp; + struct ErrMsg *em; + ssize_t len; +- ulong flags; ++ unsigned long flags; + + n = (unsigned long) filp->private_data; + switch (n) { +--- gregkh-2.6.orig/drivers/block/aoe/aoecmd.c ++++ gregkh-2.6/drivers/block/aoe/aoecmd.c +@@ -17,7 +17,7 @@ + #define MAXWAIT (60 * 3) /* After MAXWAIT seconds, give up and fail dev */ + + static struct sk_buff * +-new_skb(struct net_device *if_dev, ulong len) ++new_skb(struct net_device *if_dev, unsigned long len) + { + struct sk_buff *skb; + +@@ -82,7 +82,7 @@ getframe(struct aoedev *d, int tag) + static int + newtag(struct aoedev *d) + { +- register ulong n; ++ register unsigned long n; + + n = jiffies & 0xffff; + return n |= (++d->lasttag & 0x7fff) << 16; +@@ -112,7 +112,7 @@ aoecmd_ata_rw(struct aoedev *d, struct f + struct aoe_atahdr *ah; + struct buf *buf; + struct sk_buff *skb; +- ulong bcnt; ++ unsigned long bcnt; + register sector_t sector; + char writebit, extbit; + +@@ -254,13 +254,13 @@ tsince(int tag) + } + + static void +-rexmit_timer(ulong vp) ++rexmit_timer(unsigned long vp) + { + struct aoedev *d; + struct frame *f, *e; + struct sk_buff *sl; + register long timeout; +- ulong flags, n; ++ unsigned long flags, n; + + d = (struct aoedev *) vp; + sl = NULL; +@@ -382,7 +382,7 @@ aoecmd_ata_rsp(struct sk_buff *skb) + struct buf *buf; + struct sk_buff *sl; + register long n; +- ulong flags; ++ unsigned long flags; + char ebuf[128]; + u16 aoemajor; + +@@ -573,7 +573,7 @@ aoecmd_ata_id(struct aoedev *d) + + /* we now want to start the rexmit tracking */ + d->flags &= ~DEVFL_TKILL; +- d->timer.data = (ulong) d; ++ d->timer.data = (unsigned long) d; + d->timer.function = rexmit_timer; + d->timer.expires = jiffies + TIMERTICK; + add_timer(&d->timer); +@@ -587,7 +587,7 @@ aoecmd_cfg_rsp(struct sk_buff *skb) + struct aoedev *d; + struct aoe_hdr *h; + struct aoe_cfghdr *ch; +- ulong flags, sysminor, aoemajor; ++ unsigned long flags, sysminor, aoemajor; + u16 bufcnt; + struct sk_buff *sl; + enum { MAXFRAMES = 8 }; +--- gregkh-2.6.orig/drivers/block/aoe/aoedev.c ++++ gregkh-2.6/drivers/block/aoe/aoedev.c +@@ -16,7 +16,7 @@ struct aoedev * + aoedev_by_aoeaddr(int maj, int min) + { + struct aoedev *d; +- ulong flags; ++ unsigned long flags; + + spin_lock_irqsave(&devlist_lock, flags); + +@@ -30,7 +30,7 @@ aoedev_by_aoeaddr(int maj, int min) + + /* called with devlist lock held */ + static struct aoedev * +-aoedev_newdev(ulong nframes) ++aoedev_newdev(unsigned long nframes) + { + struct aoedev *d; + struct frame *f, *e; +@@ -101,10 +101,11 @@ aoedev_downdev(struct aoedev *d) + } + + struct aoedev * +-aoedev_set(ulong sysminor, unsigned char *addr, struct net_device *ifp, ulong bufcnt) ++aoedev_set(unsigned long sysminor, unsigned char *addr, ++ struct net_device *ifp, unsigned long bufcnt) + { + struct aoedev *d; +- ulong flags; ++ unsigned long flags; + + spin_lock_irqsave(&devlist_lock, flags); + +@@ -152,7 +153,7 @@ void + aoedev_exit(void) + { + struct aoedev *d; +- ulong flags; ++ unsigned long flags; + + flush_scheduled_work(); + +--- gregkh-2.6.orig/drivers/block/aoe/aoe.h ++++ gregkh-2.6/drivers/block/aoe/aoe.h +@@ -90,12 +90,12 @@ enum { + + struct buf { + struct list_head bufs; +- ulong start_time; /* for disk stats */ +- ulong flags; +- ulong nframesout; ++ unsigned long start_time; /* for disk stats */ ++ unsigned long flags; ++ unsigned long nframesout; + char *bufaddr; +- ulong resid; +- ulong bv_resid; ++ unsigned long resid; ++ unsigned long bv_resid; + sector_t sector; + struct bio *bio; + struct bio_vec *bv; +@@ -103,7 +103,7 @@ struct buf { + + struct frame { + int tag; +- ulong waited; ++ unsigned long waited; + struct buf *buf; + char *bufaddr; + int writedatalen; +@@ -117,11 +117,11 @@ struct aoedev { + struct aoedev *next; + unsigned char addr[6]; /* remote mac addr */ + ushort flags; +- ulong sysminor; +- ulong aoemajor; +- ulong aoeminor; +- ulong nopen; /* (bd_openers isn't available without sleeping) */ +- ulong rttavg; /* round trip average of requests/responses */ ++ unsigned long sysminor; ++ unsigned long aoemajor; ++ unsigned long aoeminor; ++ unsigned long nopen; /* (bd_openers isn't available without sleeping) */ ++ unsigned long rttavg; /* round trip average of requests/responses */ + u16 fw_ver; /* version of blade's firmware */ + struct work_struct work;/* disk create work struct */ + struct gendisk *gd; +@@ -136,8 +136,8 @@ struct aoedev { + mempool_t *bufpool; /* for deadlock-free Buf allocation */ + struct list_head bufq; /* queue of bios to work on */ + struct buf *inprocess; /* the one we're currently working on */ +- ulong lasttag; /* last tag sent */ +- ulong nframes; /* number of frames below */ ++ unsigned long lasttag; /* last tag sent */ ++ unsigned long nframes; /* number of frames below */ + struct frame *frames; + }; + +@@ -160,7 +160,7 @@ int aoedev_init(void); + void aoedev_exit(void); + struct aoedev *aoedev_by_aoeaddr(int maj, int min); + void aoedev_downdev(struct aoedev *d); +-struct aoedev *aoedev_set(ulong, unsigned char *, struct net_device *, ulong); ++struct aoedev *aoedev_set(unsigned long, unsigned char *, struct net_device *, unsigned long); + int aoedev_busy(void); + + int aoenet_init(void); +--- gregkh-2.6.orig/drivers/block/aoe/aoemain.c ++++ gregkh-2.6/drivers/block/aoe/aoemain.c +@@ -17,12 +17,12 @@ MODULE_VERSION(VERSION); + enum { TINIT, TRUN, TKILL }; + + static void +-discover_timer(ulong vp) ++discover_timer(unsigned long vp) + { + static struct timer_list t; +- static volatile ulong die; ++ static volatile unsigned long die; + static spinlock_t lock; +- ulong flags; ++ unsigned long flags; + enum { DTIMERTICK = HZ * 60 }; /* one minute */ + + switch (vp) { diff --git a/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch b/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch new file mode 100644 index 0000000000000..6e2f4696d06df --- /dev/null +++ b/driver/ide-modalias-support-for-autoloading-of-ide-cd-ide-disk.patch @@ -0,0 +1,169 @@ +From akpm@osdl.org Sun Dec 4 15:17:42 2005 +From: Kay Sievers <kay.sievers@vrfy.org> +Subject: ide: MODALIAS support for autoloading of ide-cd, ide-disk, ... +To: kay.sievers@vrfy.org, B.Zolnierkiewicz@elka.pw.edu.pl, greg@kroah.com, kay.sievers@suse.de +Message-Id: <200512042313.jB4NDLLW019192@shell0.pdx.osdl.net> +Date: Sun, 04 Dec 2005 15:13:11 -0800 + + +Add MODULE_ALIAS to IDE midlayer modules to autoload them depending +on the probed media type. + + $ modinfo ide-disk + filename: /lib/modules/2.6.15-rc4-g1b0997f5/kernel/drivers/ide/ide-disk.ko + description: ATA DISK Driver + alias: ide:*m-disk* + license: GPL + ... + + $ modprobe -vn ide:m-disk + insmod /lib/modules/2.6.15-rc4-g1b0997f5/kernel/drivers/ide/ide-disk.ko + + $ cat /sys/bus/ide/devices/0.0/modalias + ide:m-disk + +It also adds attributes to the IDE device: + $ tree /sys/bus/ide/devices/0.0/ + /sys/bus/ide/devices/0.0/ + |-- bus -> ../../../../../../../bus/ide + |-- drivename + |-- media + |-- modalias + |-- power + | |-- state + | `-- wakeup + `-- uevent + + $ cat /sys/bus/ide/devices/0.0/{modalias,drivename,media} + ide:m-disk + hda + disk + +Signed-off-by: Kay Sievers <kay.sievers@suse.de> +Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> +Signed-off-by: Andrew Morton <akpm@osdl.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + drivers/ide/ide-cd.c | 1 + drivers/ide/ide-disk.c | 1 + drivers/ide/ide-floppy.c | 1 + drivers/ide/ide-tape.c | 1 + drivers/ide/ide.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 68 insertions(+) + +--- gregkh-2.6.orig/drivers/ide/ide.c ++++ gregkh-2.6/drivers/ide/ide.c +@@ -1904,9 +1904,73 @@ static int ide_bus_match(struct device * + return 1; + } + ++static char *media_string(ide_drive_t *drive) ++{ ++ switch (drive->media) { ++ case ide_disk: ++ return "disk"; ++ case ide_cdrom: ++ return "cdrom"; ++ case ide_tape: ++ return "tape"; ++ case ide_floppy: ++ return "floppy"; ++ default: ++ return "UNKNOWN"; ++ } ++} ++ ++static ssize_t media_show(struct device *dev, struct device_attribute *attr, char *buf) ++{ ++ ide_drive_t *drive = dev->driver_data; ++ return sprintf(buf, "%s\n", media_string(drive)); ++} ++ ++static ssize_t drivename_show(struct device *dev, struct device_attribute *attr, char *buf) ++{ ++ ide_drive_t *drive = dev->driver_data; ++ return sprintf(buf, "%s\n", drive->name); ++} ++ ++static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) ++{ ++ ide_drive_t *drive = dev->driver_data; ++ return sprintf(buf, "ide:m-%s\n", media_string(drive)); ++} ++ ++static struct device_attribute ide_dev_attrs[] = { ++ __ATTR_RO(media), ++ __ATTR_RO(drivename), ++ __ATTR_RO(modalias), ++ __ATTR_NULL ++}; ++ ++static int ide_uevent(struct device *dev, char **envp, int num_envp, ++ char *buffer, int buffer_size) ++{ ++ ide_drive_t *drive = dev->driver_data; ++ int i = 0; ++ int length = 0; ++ ++ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, ++ "MEDIA=%s", media_string(drive)); ++ ++ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, ++ "DRIVENAME=%s", drive->name); ++ ++ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length, ++ "MODALIAS=ide:m-%s", ++ media_string(drive)); ++ ++ envp[i] = NULL; ++ return 0; ++} ++ + struct bus_type ide_bus_type = { + .name = "ide", + .match = ide_bus_match, ++ .uevent = ide_uevent, ++ .dev_attrs = ide_dev_attrs, + .suspend = generic_ide_suspend, + .resume = generic_ide_resume, + }; +--- gregkh-2.6.orig/drivers/ide/ide-cd.c ++++ gregkh-2.6/drivers/ide/ide-cd.c +@@ -3516,6 +3516,7 @@ static int __init ide_cdrom_init(void) + return driver_register(&ide_cdrom_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-cdrom*"); + module_init(ide_cdrom_init); + module_exit(ide_cdrom_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-disk.c ++++ gregkh-2.6/drivers/ide/ide-disk.c +@@ -1271,6 +1271,7 @@ static int __init idedisk_init(void) + return driver_register(&idedisk_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-disk*"); + module_init(idedisk_init); + module_exit(idedisk_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-floppy.c ++++ gregkh-2.6/drivers/ide/ide-floppy.c +@@ -2197,6 +2197,7 @@ static int __init idefloppy_init(void) + return driver_register(&idefloppy_driver.gen_driver); + } + ++MODULE_ALIAS("ide:*m-floppy*"); + module_init(idefloppy_init); + module_exit(idefloppy_exit); + MODULE_LICENSE("GPL"); +--- gregkh-2.6.orig/drivers/ide/ide-tape.c ++++ gregkh-2.6/drivers/ide/ide-tape.c +@@ -4947,6 +4947,7 @@ out: + return error; + } + ++MODULE_ALIAS("ide:*m-tape*"); + module_init(idetape_init); + module_exit(idetape_exit); + MODULE_ALIAS_CHARDEV_MAJOR(IDETAPE_MAJOR); |