diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-01-19 17:49:55 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-01-19 17:49:55 -0800 |
commit | a934cef80385908677760f918521d9f4f0f38089 (patch) | |
tree | 87d9d494a69ad58a587aca706eedad544f295484 /driver | |
parent | 358c5e469c3bb46cab6536de47f6795bc07a1712 (diff) | |
download | patches-a934cef80385908677760f918521d9f4f0f38089.tar.gz |
aoe patch update
Diffstat (limited to 'driver')
-rw-r--r-- | driver/aoe-allow-network-interface-migration-on-packet-retransmit.patch | 12 | ||||
-rw-r--r-- | driver/aoe-increase-allowed-outstanding-packets.patch | 12 | ||||
-rw-r--r-- | driver/aoe-skb_check-cleanup.patch | 38 | ||||
-rw-r--r-- | driver/aoe-support-dynamic-resizing-of-aoe-devices.patch | 609 | ||||
-rw-r--r-- | driver/aoe-type-cleanups.patch-added-to-mm-tree.patch | 299 | ||||
-rw-r--r-- | driver/aoe-update-device-information-on-last-close.patch | 8 | ||||
-rw-r--r-- | driver/aoe-update-driver-compatibility-string.patch | 29 | ||||
-rw-r--r-- | driver/aoe-update-driver-version-number.patch | 11 | ||||
-rw-r--r-- | driver/aoe-use-less-confusing-driver-name.patch | 14 | ||||
-rw-r--r-- | driver/aoe-zero-packet-data-after-skb-allocation.patch | 11 |
10 files changed, 426 insertions, 617 deletions
diff --git a/driver/aoe-allow-network-interface-migration-on-packet-retransmit.patch b/driver/aoe-allow-network-interface-migration-on-packet-retransmit.patch index d805fd0501ab75..d1daf36870e677 100644 --- a/driver/aoe-allow-network-interface-migration-on-packet-retransmit.patch +++ b/driver/aoe-allow-network-interface-migration-on-packet-retransmit.patch @@ -1,15 +1,13 @@ -From ecashin@coraid.com Tue Jan 3 13:31:30 2006 +From ecashin@coraid.com Thu Jan 19 11:11:56 2006 +Message-ID: <d856359f3883ba1b7f11683932a478be@coraid.com> From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 13:46:25 -0500 CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: allow network interface migration on packet retransmit -Date: Tue, 03 Jan 2006 16:08:17 -0500 -Message-ID: <87sls5yq7y.fsf@coraid.com> - +Subject: [PATCH 2.6.15-git9] aoe [5/8]: allow network interface migration on packet retransmit Retransmit to the current network interface for an AoE device. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/block/aoe/aoecmd.c | 2 ++ @@ -17,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- gregkh-2.6.orig/drivers/block/aoe/aoecmd.c +++ gregkh-2.6/drivers/block/aoe/aoecmd.c -@@ -239,6 +239,8 @@ rexmit(struct aoedev *d, struct frame *f +@@ -286,6 +286,8 @@ rexmit(struct aoedev *d, struct frame *f h = (struct aoe_hdr *) f->data; f->tag = n; h->tag = cpu_to_be32(n); diff --git a/driver/aoe-increase-allowed-outstanding-packets.patch b/driver/aoe-increase-allowed-outstanding-packets.patch index 93a985ea0195f4..153be15771f6f9 100644 --- a/driver/aoe-increase-allowed-outstanding-packets.patch +++ b/driver/aoe-increase-allowed-outstanding-packets.patch @@ -1,9 +1,9 @@ -From ecashin@coraid.com Tue Jan 3 13:31:24 2006 +From ecashin@coraid.com Thu Jan 19 11:06:22 2006 +Message-ID: <5debc908a0299c62aca98d7a08a00cba@coraid.com> From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 13:46:20 -0500 CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: increase allowed outstanding packets -Date: Tue, 03 Jan 2006 16:07:55 -0500 -Message-ID: <87aced10lw.fsf@coraid.com> +Subject: [PATCH 2.6.15-git9] aoe [3/8]: increase allowed outstanding packets Increase the number of AoE packets per device that can be outstanding at one time, increasing performance. @@ -17,8 +17,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- gregkh-2.6.orig/drivers/block/aoe/aoecmd.c +++ gregkh-2.6/drivers/block/aoe/aoecmd.c -@@ -655,7 +655,7 @@ aoecmd_cfg_rsp(struct sk_buff *skb) - unsigned long flags, sysminor, aoemajor; +@@ -647,7 +647,7 @@ aoecmd_cfg_rsp(struct sk_buff *skb) + ulong flags, sysminor, aoemajor; u16 bufcnt; struct sk_buff *sl; - enum { MAXFRAMES = 8 }; diff --git a/driver/aoe-skb_check-cleanup.patch b/driver/aoe-skb_check-cleanup.patch deleted file mode 100644 index 2ae9e86c0b4575..00000000000000 --- a/driver/aoe-skb_check-cleanup.patch +++ /dev/null @@ -1,38 +0,0 @@ -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-support-dynamic-resizing-of-aoe-devices.patch b/driver/aoe-support-dynamic-resizing-of-aoe-devices.patch index eb76a432877178..e9953e1b1a0841 100644 --- a/driver/aoe-support-dynamic-resizing-of-aoe-devices.patch +++ b/driver/aoe-support-dynamic-resizing-of-aoe-devices.patch @@ -1,13 +1,14 @@ -From ecashin@coraid.com Tue Jan 3 13:19:50 2006 +From ecashin@coraid.com Thu Jan 19 11:06:22 2006 +Message-ID: <8b8d2529e6e616530c1463e0284108db@coraid.com> From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 13:46:19 -0500 CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: support dynamic resizing of AoE devices -Date: Tue, 03 Jan 2006 16:07:41 -0500 -Message-ID: <87irt110ma.fsf@coraid.com> +Subject: [PATCH 2.6.15-git9] aoe [2/8]: support dynamic resizing of AoE devices -Allow the driver to recognize AoE devices that have changed -size. Devices not in use are updated automatically, and devices -that are in use are updated at user request. + +Allow the driver to recognize AoE devices that have changed size. +Devices not in use are updated automatically, and devices that are in +use are updated at user request. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> @@ -15,13 +16,24 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- Documentation/aoe/mkdevs.sh | 2 Documentation/aoe/udev.txt | 1 - drivers/block/aoe/aoe.h | 13 +++-- - drivers/block/aoe/aoeblk.c | 22 +++----- - drivers/block/aoe/aoechr.c | 37 ++++++++++++++ - drivers/block/aoe/aoecmd.c | 113 +++++++++++++++++++++++++++++++++++--------- - drivers/block/aoe/aoedev.c | 50 ++++++++++++------- - 7 files changed, 179 insertions(+), 59 deletions(-) + drivers/block/aoe/aoe.h | 12 +- + drivers/block/aoe/aoeblk.c | 22 ++--- + drivers/block/aoe/aoechr.c | 37 +++++++++ + drivers/block/aoe/aoecmd.c | 177 +++++++++++++++++++++++++++++--------------- + drivers/block/aoe/aoedev.c | 69 +++++++++++------ + 7 files changed, 223 insertions(+), 97 deletions(-) +--- gregkh-2.6.orig/Documentation/aoe/mkdevs.sh ++++ gregkh-2.6/Documentation/aoe/mkdevs.sh +@@ -27,6 +27,8 @@ rm -f $dir/discover + mknod -m 0200 $dir/discover c $MAJOR 3 + rm -f $dir/interfaces + mknod -m 0200 $dir/interfaces c $MAJOR 4 ++rm -f $dir/revalidate ++mknod -m 0200 $dir/revalidate c $MAJOR 5 + + export n_partitions + mkshelf=`echo $0 | sed 's!mkdevs!mkshelf!'` --- gregkh-2.6.orig/Documentation/aoe/udev.txt +++ gregkh-2.6/Documentation/aoe/udev.txt @@ -18,6 +18,7 @@ @@ -32,6 +44,41 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> # aoe block devices KERNEL="etherd*", NAME="%k", GROUP="disk" +--- gregkh-2.6.orig/drivers/block/aoe/aoe.h ++++ gregkh-2.6/drivers/block/aoe/aoe.h +@@ -75,8 +75,9 @@ enum { + DEVFL_TKILL = (1<<1), /* flag for timer to know when to kill self */ + DEVFL_EXT = (1<<2), /* device accepts lba48 commands */ + DEVFL_CLOSEWAIT = (1<<3), /* device is waiting for all closes to revalidate */ +- DEVFL_WC_UPDATE = (1<<4), /* this device needs to update write cache status */ +- DEVFL_WORKON = (1<<4), ++ DEVFL_GDALLOC = (1<<4), /* need to alloc gendisk */ ++ DEVFL_PAUSE = (1<<5), ++ DEVFL_NEWSIZE = (1<<6), /* need to update dev size in block layer */ + + BUFFL_FAIL = 1, + }; +@@ -152,16 +153,17 @@ void aoechr_exit(void); + void aoechr_error(char *); + + void aoecmd_work(struct aoedev *d); +-void aoecmd_cfg(ushort, unsigned char); ++void aoecmd_cfg(ushort aoemajor, unsigned char aoeminor); + void aoecmd_ata_rsp(struct sk_buff *); + void aoecmd_cfg_rsp(struct sk_buff *); ++void aoecmd_sleepwork(void *vp); + + int aoedev_init(void); + void aoedev_exit(void); + struct aoedev *aoedev_by_aoeaddr(int maj, int min); ++struct aoedev *aoedev_by_sysminor_m(ulong sysminor, ulong bufcnt); + void aoedev_downdev(struct aoedev *d); +-struct aoedev *aoedev_set(ulong, unsigned char *, struct net_device *, ulong); +-int aoedev_busy(void); ++int aoedev_isbusy(struct aoedev *d); + + int aoenet_init(void); + void aoenet_exit(void); --- gregkh-2.6.orig/drivers/block/aoe/aoeblk.c +++ gregkh-2.6/drivers/block/aoe/aoeblk.c @@ -22,7 +22,9 @@ static ssize_t aoedisk_show_state(struct @@ -110,108 +157,73 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } void ---- gregkh-2.6.orig/drivers/block/aoe/aoedev.c -+++ gregkh-2.6/drivers/block/aoe/aoedev.c -@@ -12,6 +12,24 @@ - static struct aoedev *devlist; - static spinlock_t devlist_lock; +--- gregkh-2.6.orig/drivers/block/aoe/aoechr.c ++++ gregkh-2.6/drivers/block/aoe/aoechr.c +@@ -13,6 +13,7 @@ enum { + MINOR_ERR = 2, + MINOR_DISCOVER, + MINOR_INTERFACES, ++ MINOR_REVALIDATE, + MSGSZ = 2048, + NARGS = 10, + NMSG = 100, /* message backlog to retain */ +@@ -41,6 +42,7 @@ static struct aoe_chardev chardevs[] = { + { MINOR_ERR, "err" }, + { MINOR_DISCOVER, "discover" }, + { MINOR_INTERFACES, "interfaces" }, ++ { MINOR_REVALIDATE, "revalidate" }, + }; -+int -+aoedev_isbusy(struct aoedev *d) + static int +@@ -62,6 +64,39 @@ interfaces(const char __user *str, size_ + return 0; + } + ++static int ++revalidate(const char __user *str, size_t size) +{ -+ struct frame *f, *e; ++ int major, minor, n; ++ ulong flags; ++ struct aoedev *d; ++ char buf[16]; + -+ f = d->frames; -+ e = f + d->nframes; -+ do { -+ if (f->tag != FREETAG) { -+ printk(KERN_DEBUG "aoe: %ld.%ld isbusy\n", -+ d->aoemajor, d->aoeminor); -+ return 1; -+ } -+ } while (++f < e); ++ if (size >= sizeof buf) ++ return -EINVAL; ++ buf[sizeof buf - 1] = '\0'; ++ if (copy_from_user(buf, str, size)) ++ return -EFAULT; ++ ++ /* should be e%d.%d format */ ++ n = sscanf(buf, "e%d.%d", &major, &minor); ++ if (n != 2) { ++ printk(KERN_ERR "aoe: %s: invalid device specification\n", ++ __FUNCTION__); ++ return -EINVAL; ++ } ++ d = aoedev_by_aoeaddr(major, minor); ++ if (!d) ++ return -EINVAL; ++ ++ spin_lock_irqsave(&d->lock, flags); ++ d->flags |= DEVFL_PAUSE; ++ spin_unlock_irqrestore(&d->lock, flags); ++ aoecmd_cfg(major, minor); + + return 0; +} + - struct aoedev * - aoedev_by_aoeaddr(int maj, int min) - { -@@ -44,6 +62,8 @@ aoedev_newdev(unsigned long nframes) - return NULL; - } - -+ INIT_WORK(&d->work, aoecmd_sleepwork, d); -+ - d->nframes = nframes; - d->frames = f; - e = f + nframes; -@@ -92,17 +112,15 @@ aoedev_downdev(struct aoedev *d) - bio_endio(bio, bio->bi_size, -EIO); - } - -- if (d->nopen) -- d->flags |= DEVFL_CLOSEWAIT; - if (d->gd) - d->gd->capacity = 0; - -- d->flags &= ~DEVFL_UP; -+ d->flags &= ~(DEVFL_UP | DEVFL_PAUSE); - } - -+/* find it or malloc it */ - struct aoedev * --aoedev_set(unsigned long sysminor, unsigned char *addr, -- struct net_device *ifp, unsigned long bufcnt) -+aoedev_by_sysminor_m(ulong sysminor, ulong bufcnt) + void + aoechr_error(char *msg) { - struct aoedev *d; - unsigned long flags; -@@ -113,25 +131,19 @@ aoedev_set(unsigned long sysminor, unsig - if (d->sysminor == sysminor) - break; - -- if (d == NULL && (d = aoedev_newdev(bufcnt)) == NULL) { -- spin_unlock_irqrestore(&devlist_lock, flags); -- printk(KERN_INFO "aoe: aoedev_set: aoedev_newdev failure.\n"); -- return NULL; -- } /* if newdev, (d->flags & DEVFL_UP) == 0 for below */ -- -- spin_unlock_irqrestore(&devlist_lock, flags); -- spin_lock_irqsave(&d->lock, flags); -- -- d->ifp = ifp; -- memcpy(d->addr, addr, sizeof d->addr); -- if ((d->flags & DEVFL_UP) == 0) { -- aoedev_downdev(d); /* flushes outstanding frames */ -+ if (d == NULL) { -+ d = aoedev_newdev(bufcnt); -+ if (d == NULL) { -+ spin_unlock_irqrestore(&devlist_lock, flags); -+ printk(KERN_INFO "aoe: aoedev_set: aoedev_newdev failure.\n"); -+ return NULL; -+ } - d->sysminor = sysminor; - d->aoemajor = AOEMAJOR(sysminor); - d->aoeminor = AOEMINOR(sysminor); +@@ -114,6 +149,8 @@ aoechr_write(struct file *filp, const ch + case MINOR_INTERFACES: + ret = interfaces(buf, cnt); + break; ++ case MINOR_REVALIDATE: ++ ret = revalidate(buf, cnt); } - -- spin_unlock_irqrestore(&d->lock, flags); -+ spin_unlock_irqrestore(&devlist_lock, flags); - return d; - } - ---- gregkh-2.6.orig/Documentation/aoe/mkdevs.sh -+++ gregkh-2.6/Documentation/aoe/mkdevs.sh -@@ -27,6 +27,8 @@ rm -f $dir/discover - mknod -m 0200 $dir/discover c $MAJOR 3 - rm -f $dir/interfaces - mknod -m 0200 $dir/interfaces c $MAJOR 4 -+rm -f $dir/revalidate -+mknod -m 0200 $dir/revalidate c $MAJOR 5 - - export n_partitions - mkshelf=`echo $0 | sed 's!mkdevs!mkshelf!'` + if (ret == 0) + ret = cnt; --- gregkh-2.6.orig/drivers/block/aoe/aoecmd.c +++ gregkh-2.6/drivers/block/aoe/aoecmd.c @@ -8,6 +8,7 @@ @@ -222,7 +234,60 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> #include <asm/unaligned.h> #include "aoe.h" -@@ -195,6 +196,14 @@ aoecmd_work(struct aoedev *d) +@@ -189,12 +190,67 @@ aoecmd_ata_rw(struct aoedev *d, struct f + } + } + ++/* some callers cannot sleep, and they can call this function, ++ * transmitting the packets later, when interrupts are on ++ */ ++static struct sk_buff * ++aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff **tail) ++{ ++ struct aoe_hdr *h; ++ struct aoe_cfghdr *ch; ++ struct sk_buff *skb, *sl, *sl_tail; ++ struct net_device *ifp; ++ ++ sl = sl_tail = NULL; ++ ++ read_lock(&dev_base_lock); ++ for (ifp = dev_base; ifp; dev_put(ifp), ifp = ifp->next) { ++ dev_hold(ifp); ++ if (!is_aoe_netif(ifp)) ++ continue; ++ ++ skb = new_skb(ifp, sizeof *h + sizeof *ch); ++ if (skb == NULL) { ++ printk(KERN_INFO "aoe: aoecmd_cfg: skb alloc failure\n"); ++ continue; ++ } ++ if (sl_tail == NULL) ++ sl_tail = skb; ++ h = (struct aoe_hdr *) skb->mac.raw; ++ memset(h, 0, sizeof *h + sizeof *ch); ++ ++ memset(h->dst, 0xff, sizeof h->dst); ++ memcpy(h->src, ifp->dev_addr, sizeof h->src); ++ h->type = __constant_cpu_to_be16(ETH_P_AOE); ++ h->verfl = AOE_HVER; ++ h->major = cpu_to_be16(aoemajor); ++ h->minor = aoeminor; ++ h->cmd = AOECMD_CFG; ++ ++ skb->next = sl; ++ sl = skb; ++ } ++ read_unlock(&dev_base_lock); ++ ++ if (tail != NULL) ++ *tail = sl_tail; ++ return sl; ++} ++ + /* enters with d->lock held */ + void + aoecmd_work(struct aoedev *d) { struct frame *f; struct buf *buf; @@ -237,7 +302,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> loop: f = getframe(d, FREETAG); if (f == NULL) -@@ -306,6 +315,38 @@ tdie: spin_unlock_irqrestore(&d->lock, +@@ -306,6 +362,37 @@ tdie: spin_unlock_irqrestore(&d->lock, aoenet_xmit(sl); } @@ -263,7 +328,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + mutex_lock(&bd->bd_inode->i_mutex); + i_size_write(bd->bd_inode, (loff_t)ssize<<9); + mutex_unlock(&bd->bd_inode->i_mutex); -+//?? rescan_partitions(d->gd, bd); + bdput(bd); + } + spin_lock_irqsave(&d->lock, flags); @@ -276,7 +340,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> static void ataid_complete(struct aoedev *d, unsigned char *id) { -@@ -340,21 +381,29 @@ ataid_complete(struct aoedev *d, unsigne +@@ -340,21 +427,29 @@ ataid_complete(struct aoedev *d, unsigne d->geo.heads = le16_to_cpu(get_unaligned((__le16 *) &id[55<<1])); d->geo.sectors = le16_to_cpu(get_unaligned((__le16 *) &id[56<<1])); } @@ -315,7 +379,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } static void -@@ -452,7 +501,7 @@ aoecmd_ata_rsp(struct sk_buff *skb) +@@ -452,7 +547,7 @@ aoecmd_ata_rsp(struct sk_buff *skb) return; } ataid_complete(d, (char *) (ahin+1)); @@ -324,7 +388,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> break; default: printk(KERN_INFO "aoe: aoecmd_ata_rsp: unrecognized " -@@ -485,24 +534,25 @@ aoecmd_ata_rsp(struct sk_buff *skb) +@@ -485,51 +580,19 @@ aoecmd_ata_rsp(struct sk_buff *skb) f->tag = FREETAG; aoecmd_work(d); @@ -337,54 +401,72 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> aoenet_xmit(sl); } --void --aoecmd_cfg(ushort aoemajor, unsigned char aoeminor) -+/* some callers cannot sleep, and they can call this function, -+ * transmitting the packets later, when interrupts are on -+ */ -+struct sk_buff * -+aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff **tail) + void + aoecmd_cfg(ushort aoemajor, unsigned char aoeminor) { - struct aoe_hdr *h; - struct aoe_cfghdr *ch; +- struct aoe_hdr *h; +- struct aoe_cfghdr *ch; - struct sk_buff *skb, *sl; -+ struct sk_buff *skb, *sl, *sl_tail; - struct net_device *ifp; - +- struct net_device *ifp; +- - sl = NULL; -+ sl = sl_tail = NULL; - - read_lock(&dev_base_lock); - for (ifp = dev_base; ifp; dev_put(ifp), ifp = ifp->next) { -@@ -515,6 +565,8 @@ aoecmd_cfg(ushort aoemajor, unsigned cha - printk(KERN_INFO "aoe: aoecmd_cfg: skb alloc failure\n"); - continue; - } -+ if (sl_tail == NULL) -+ sl_tail = skb; - h = (struct aoe_hdr *) skb->mac.raw; - memset(h, 0, sizeof *h + sizeof *ch); - -@@ -531,6 +583,18 @@ aoecmd_cfg(ushort aoemajor, unsigned cha - } - read_unlock(&dev_base_lock); - -+ if (tail != NULL) -+ *tail = sl_tail; -+ return sl; -+} -+ -+void -+aoecmd_cfg(ushort aoemajor, unsigned char aoeminor) -+{ +- +- read_lock(&dev_base_lock); +- for (ifp = dev_base; ifp; dev_put(ifp), ifp = ifp->next) { +- dev_hold(ifp); +- if (!is_aoe_netif(ifp)) +- continue; +- +- skb = new_skb(ifp, sizeof *h + sizeof *ch); +- if (skb == NULL) { +- printk(KERN_INFO "aoe: aoecmd_cfg: skb alloc failure\n"); +- continue; +- } +- h = (struct aoe_hdr *) skb->mac.raw; +- memset(h, 0, sizeof *h + sizeof *ch); +- +- memset(h->dst, 0xff, sizeof h->dst); +- memcpy(h->src, ifp->dev_addr, sizeof h->src); +- h->type = __constant_cpu_to_be16(ETH_P_AOE); +- h->verfl = AOE_HVER; +- h->major = cpu_to_be16(aoemajor); +- h->minor = aoeminor; +- h->cmd = AOECMD_CFG; + struct sk_buff *sl; -+ + +- skb->next = sl; +- sl = skb; +- } +- read_unlock(&dev_base_lock); + sl = aoecmd_cfg_pkts(aoemajor, aoeminor, NULL); -+ + aoenet_xmit(sl); } - -@@ -619,23 +683,28 @@ aoecmd_cfg_rsp(struct sk_buff *skb) +@@ -562,9 +625,6 @@ aoecmd_ata_id(struct aoedev *d) + f->waited = 0; + f->writedatalen = 0; + +- /* this message initializes the device, so we reset the rttavg */ +- d->rttavg = MAXTIMER; +- + /* set up ata header */ + ah->scnt = 1; + ah->cmdstat = WIN_IDENTIFY; +@@ -572,12 +632,8 @@ aoecmd_ata_id(struct aoedev *d) + + skb = skb_prepare(d, f); + +- /* we now want to start the rexmit tracking */ +- d->flags &= ~DEVFL_TKILL; +- d->timer.data = (ulong) d; ++ d->rttavg = MAXTIMER; + d->timer.function = rexmit_timer; +- d->timer.expires = jiffies + TIMERTICK; +- add_timer(&d->timer); + + return skb; + } +@@ -619,23 +675,28 @@ aoecmd_cfg_rsp(struct sk_buff *skb) if (bufcnt > MAXFRAMES) /* keep it reasonable */ bufcnt = MAXFRAMES; @@ -419,106 +501,141 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> spin_unlock_irqrestore(&d->lock, flags); ---- gregkh-2.6.orig/drivers/block/aoe/aoe.h -+++ gregkh-2.6/drivers/block/aoe/aoe.h -@@ -75,8 +75,9 @@ enum { - DEVFL_TKILL = (1<<1), /* flag for timer to know when to kill self */ - DEVFL_EXT = (1<<2), /* device accepts lba48 commands */ - DEVFL_CLOSEWAIT = (1<<3), /* device is waiting for all closes to revalidate */ -- DEVFL_WC_UPDATE = (1<<4), /* this device needs to update write cache status */ -- DEVFL_WORKON = (1<<4), -+ DEVFL_GDALLOC = (1<<4), /* need to alloc gendisk */ -+ DEVFL_PAUSE = (1<<5), -+ DEVFL_NEWSIZE = (1<<6), /* need to update dev size in block layer */ - - BUFFL_FAIL = 1, - }; -@@ -152,16 +153,18 @@ void aoechr_exit(void); - void aoechr_error(char *); - - void aoecmd_work(struct aoedev *d); --void aoecmd_cfg(ushort, unsigned char); -+void aoecmd_cfg(ushort aoemajor, unsigned char aoeminor); -+struct sk_buff *aoecmd_cfg_pkts(ushort, unsigned char, struct sk_buff **); - void aoecmd_ata_rsp(struct sk_buff *); - void aoecmd_cfg_rsp(struct sk_buff *); -+void aoecmd_sleepwork(void *vp); - - int aoedev_init(void); - void aoedev_exit(void); - struct aoedev *aoedev_by_aoeaddr(int maj, int min); -+struct aoedev *aoedev_by_sysminor_m(ulong sysminor, ulong bufcnt); - void aoedev_downdev(struct aoedev *d); --struct aoedev *aoedev_set(unsigned long, unsigned char *, struct net_device *, unsigned long); --int aoedev_busy(void); -+int aoedev_isbusy(struct aoedev *d); - - int aoenet_init(void); - void aoenet_exit(void); ---- gregkh-2.6.orig/drivers/block/aoe/aoechr.c -+++ gregkh-2.6/drivers/block/aoe/aoechr.c -@@ -13,6 +13,7 @@ enum { - MINOR_ERR = 2, - MINOR_DISCOVER, - MINOR_INTERFACES, -+ MINOR_REVALIDATE, - MSGSZ = 2048, - NARGS = 10, - NMSG = 100, /* message backlog to retain */ -@@ -41,6 +42,7 @@ static struct aoe_chardev chardevs[] = { - { MINOR_ERR, "err" }, - { MINOR_DISCOVER, "discover" }, - { MINOR_INTERFACES, "interfaces" }, -+ { MINOR_REVALIDATE, "revalidate" }, - }; - - static int -@@ -62,6 +64,39 @@ interfaces(const char __user *str, size_ - return 0; - } +--- gregkh-2.6.orig/drivers/block/aoe/aoedev.c ++++ gregkh-2.6/drivers/block/aoe/aoedev.c +@@ -12,6 +12,24 @@ + static struct aoedev *devlist; + static spinlock_t devlist_lock; -+static int -+revalidate(const char __user *str, size_t size) ++int ++aoedev_isbusy(struct aoedev *d) +{ -+ int major, minor, n; -+ ulong flags; -+ struct aoedev *d; -+ char buf[16]; ++ struct frame *f, *e; + -+ if (size >= sizeof buf) -+ return -EINVAL; -+ buf[sizeof buf - 1] = '\0'; -+ if (copy_from_user(buf, str, size)) -+ return -EFAULT; ++ f = d->frames; ++ e = f + d->nframes; ++ do { ++ if (f->tag != FREETAG) { ++ printk(KERN_DEBUG "aoe: %ld.%ld isbusy\n", ++ d->aoemajor, d->aoeminor); ++ return 1; ++ } ++ } while (++f < e); + -+ /* should be e%d.%d format */ -+ n = sscanf(buf, "e%d.%d", &major, &minor); -+ if (n != 2) { -+ printk(KERN_ERR "aoe: %s: invalid device specification\n", -+ __FUNCTION__); -+ return -EINVAL; -+ } -+ d = aoedev_by_aoeaddr(major, minor); -+ if (!d) -+ return -EINVAL; ++ return 0; ++} + -+ spin_lock_irqsave(&d->lock, flags); -+ d->flags |= DEVFL_PAUSE; -+ spin_unlock_irqrestore(&d->lock, flags); -+ aoecmd_cfg(major, minor); + struct aoedev * + aoedev_by_aoeaddr(int maj, int min) + { +@@ -28,6 +46,18 @@ aoedev_by_aoeaddr(int maj, int min) + return d; + } + ++static void ++dummy_timer(ulong vp) ++{ ++ struct aoedev *d; + -+ return 0; ++ d = (struct aoedev *)vp; ++ if (d->flags & DEVFL_TKILL) ++ return; ++ d->timer.expires = jiffies + HZ; ++ add_timer(&d->timer); +} + - void - aoechr_error(char *msg) + /* called with devlist lock held */ + static struct aoedev * + aoedev_newdev(ulong nframes) +@@ -44,6 +74,8 @@ aoedev_newdev(ulong nframes) + return NULL; + } + ++ INIT_WORK(&d->work, aoecmd_sleepwork, d); ++ + d->nframes = nframes; + d->frames = f; + e = f + nframes; +@@ -52,6 +84,10 @@ aoedev_newdev(ulong nframes) + + spin_lock_init(&d->lock); + init_timer(&d->timer); ++ d->timer.data = (ulong) d; ++ d->timer.function = dummy_timer; ++ d->timer.expires = jiffies + HZ; ++ add_timer(&d->timer); + d->bufpool = NULL; /* defer to aoeblk_gdalloc */ + INIT_LIST_HEAD(&d->bufq); + d->next = devlist; +@@ -67,9 +103,6 @@ aoedev_downdev(struct aoedev *d) + struct buf *buf; + struct bio *bio; + +- d->flags |= DEVFL_TKILL; +- del_timer(&d->timer); +- + f = d->frames; + e = f + d->nframes; + for (; f<e; f->tag = FREETAG, f->buf = NULL, f++) { +@@ -92,16 +125,15 @@ aoedev_downdev(struct aoedev *d) + bio_endio(bio, bio->bi_size, -EIO); + } + +- if (d->nopen) +- d->flags |= DEVFL_CLOSEWAIT; + if (d->gd) + d->gd->capacity = 0; + +- d->flags &= ~DEVFL_UP; ++ d->flags &= ~(DEVFL_UP | DEVFL_PAUSE); + } + ++/* find it or malloc it */ + struct aoedev * +-aoedev_set(ulong sysminor, unsigned char *addr, struct net_device *ifp, ulong bufcnt) ++aoedev_by_sysminor_m(ulong sysminor, ulong bufcnt) { -@@ -114,6 +149,8 @@ aoechr_write(struct file *filp, const ch - case MINOR_INTERFACES: - ret = interfaces(buf, cnt); - break; -+ case MINOR_REVALIDATE: -+ ret = revalidate(buf, cnt); + struct aoedev *d; + ulong flags; +@@ -112,25 +144,19 @@ aoedev_set(ulong sysminor, unsigned char + if (d->sysminor == sysminor) + break; + +- if (d == NULL && (d = aoedev_newdev(bufcnt)) == NULL) { +- spin_unlock_irqrestore(&devlist_lock, flags); +- printk(KERN_INFO "aoe: aoedev_set: aoedev_newdev failure.\n"); +- return NULL; +- } /* if newdev, (d->flags & DEVFL_UP) == 0 for below */ +- +- spin_unlock_irqrestore(&devlist_lock, flags); +- spin_lock_irqsave(&d->lock, flags); +- +- d->ifp = ifp; +- memcpy(d->addr, addr, sizeof d->addr); +- if ((d->flags & DEVFL_UP) == 0) { +- aoedev_downdev(d); /* flushes outstanding frames */ ++ if (d == NULL) { ++ d = aoedev_newdev(bufcnt); ++ if (d == NULL) { ++ spin_unlock_irqrestore(&devlist_lock, flags); ++ printk(KERN_INFO "aoe: aoedev_set: aoedev_newdev failure.\n"); ++ return NULL; ++ } + d->sysminor = sysminor; + d->aoemajor = AOEMAJOR(sysminor); + d->aoeminor = AOEMINOR(sysminor); } - if (ret == 0) - ret = cnt; + +- spin_unlock_irqrestore(&d->lock, flags); ++ spin_unlock_irqrestore(&devlist_lock, flags); + return d; + } + +@@ -161,6 +187,7 @@ aoedev_exit(void) + + spin_lock_irqsave(&d->lock, flags); + aoedev_downdev(d); ++ d->flags |= DEVFL_TKILL; + spin_unlock_irqrestore(&d->lock, flags); + + del_timer_sync(&d->timer); diff --git a/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch b/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch deleted file mode 100644 index c5adf54aa6c445..00000000000000 --- a/driver/aoe-type-cleanups.patch-added-to-mm-tree.patch +++ /dev/null @@ -1,299 +0,0 @@ -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); - -@@ -198,7 +198,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/aoe-update-device-information-on-last-close.patch b/driver/aoe-update-device-information-on-last-close.patch index 4d795dd1b75069..bcfefe002c0cc3 100644 --- a/driver/aoe-update-device-information-on-last-close.patch +++ b/driver/aoe-update-device-information-on-last-close.patch @@ -1,9 +1,9 @@ -From ecashin@coraid.com Tue Jan 3 13:31:33 2006 +From ecashin@coraid.com Thu Jan 19 11:11:56 2006 +Message-ID: <6708136ac02e66a47b3c32b744cd5ca1@coraid.com> From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 13:46:27 -0500 CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: update device information on last close -Date: Tue, 03 Jan 2006 16:08:25 -0500 -Message-ID: <87k6dhyq7q.fsf@coraid.com> +Subject: [PATCH 2.6.15-git9] aoe [6/8]: update device information on last close Instead of making the user wait or do it manually, refresh device information on its last close by issuing a config diff --git a/driver/aoe-update-driver-compatibility-string.patch b/driver/aoe-update-driver-compatibility-string.patch new file mode 100644 index 00000000000000..b6aed810b1affb --- /dev/null +++ b/driver/aoe-update-driver-compatibility-string.patch @@ -0,0 +1,29 @@ +From ecashin@coraid.com Thu Jan 19 11:11:56 2006 +Message-ID: <49d97c1e1c57eeb1017586aef4372f8c@coraid.com> +Date: Thu, 19 Jan 2006 13:46:29 -0500 +From: "Ed L. Cashin" <ecashin@coraid.com> +CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> +Subject: [PATCH 2.6.15-git9] aoe [7/8]: update driver compatibility string + +The aoe driver is not compatible with 2.6 kernels older +than 2.6.2. + +Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + +--- + drivers/block/aoe/aoemain.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- gregkh-2.6.orig/drivers/block/aoe/aoemain.c ++++ gregkh-2.6/drivers/block/aoe/aoemain.c +@@ -11,7 +11,7 @@ + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Sam Hopkins <sah@coraid.com>"); +-MODULE_DESCRIPTION("AoE block/char driver for 2.6.[0-9]+"); ++MODULE_DESCRIPTION("AoE block/char driver for 2.6.2 and newer 2.6 kernels"); + MODULE_VERSION(VERSION); + + enum { TINIT, TRUN, TKILL }; diff --git a/driver/aoe-update-driver-version-number.patch b/driver/aoe-update-driver-version-number.patch index b812df8f613680..5cff551a48f224 100644 --- a/driver/aoe-update-driver-version-number.patch +++ b/driver/aoe-update-driver-version-number.patch @@ -1,15 +1,16 @@ -From ecashin@coraid.com Tue Jan 3 13:31:36 2006 +From ecashin@coraid.com Thu Jan 19 11:12:07 2006 +Message-ID: <50543c54f330f77d820ae494a4efcfb8@coraid.com> +Date: Thu, 19 Jan 2006 13:46:31 -0500 From: "Ed L. Cashin" <ecashin@coraid.com> CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: update driver version number -Date: Tue, 03 Jan 2006 16:08:33 -0500 -Message-ID: <87bqytyq7i.fsf@coraid.com> +Subject: [PATCH 2.6.15-git9] aoe [8/8]: update driver version number Update aoe driver version number. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + --- drivers/block/aoe/aoe.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -19,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> @@ -1,5 +1,5 @@ /* Copyright (c) 2004 Coraid, Inc. See COPYING for GPL terms. */ -#define VERSION "14" -+#define VERSION "18" ++#define VERSION "21" #define AOE_MAJOR 152 #define DEVICE_NAME "aoe" diff --git a/driver/aoe-use-less-confusing-driver-name.patch b/driver/aoe-use-less-confusing-driver-name.patch index 79634c89d2636f..126cb25ef06f5b 100644 --- a/driver/aoe-use-less-confusing-driver-name.patch +++ b/driver/aoe-use-less-confusing-driver-name.patch @@ -1,10 +1,9 @@ -From ecashin@coraid.com Thu Jan 5 08:42:05 2006 -From: Ed L Cashin <ecashin@coraid.com> -To: Coywolf Qi Hunt <coywolf@gmail.com> -Cc: Greg K-H <greg@kroah.com> -Subject: aoe: use less confusing driver name -Date: Thu, 05 Jan 2006 11:35:29 -0500 -Message-ID: <87hd8i63am.fsf@coraid.com> +From ecashin@coraid.com Thu Jan 19 11:11:56 2006 +Message-ID: <7be904c15d72056646152df618e81904@coraid.com> +From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 13:46:22 -0500 +CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> +Subject: [PATCH 2.6.15-git9] aoe [4/8]: use less confusing driver name Users were confused by the driver being called "aoe-2.6-$version". This form looks less like a Linux kernel version number. @@ -12,6 +11,7 @@ This form looks less like a Linux kernel version number. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + --- drivers/block/aoe/aoemain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver/aoe-zero-packet-data-after-skb-allocation.patch b/driver/aoe-zero-packet-data-after-skb-allocation.patch index cf678ed83ec5c2..803d6b01711dc9 100644 --- a/driver/aoe-zero-packet-data-after-skb-allocation.patch +++ b/driver/aoe-zero-packet-data-after-skb-allocation.patch @@ -1,22 +1,23 @@ -From ecashin@coraid.com Tue Jan 3 13:31:21 2006 +From ecashin@coraid.com Thu Jan 19 10:41:19 2006 +Message-ID: <1d5bd928255f552b12b1b329c92257bb@coraid.com> From: "Ed L. Cashin" <ecashin@coraid.com> +Date: Thu, 19 Jan 2006 12:37:24 -0500 CC: ecashin@coraid.com, Greg K-H <greg@kroah.com> -Subject: aoe: zero packet data after skb allocation -Date: Tue, 03 Jan 2006 16:05:03 -0500 -Message-ID: <87hd8l2fb4.fsf@coraid.com> +Subject: [PATCH 2.6.15-git9] aoe [1/8]: zero packet data after skb allocation Zero the data in new socket buffers to prevent leaking information. Signed-off-by: "Ed L. Cashin" <ecashin@coraid.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + --- drivers/block/aoe/aoecmd.c | 1 + 1 file changed, 1 insertion(+) --- gregkh-2.6.orig/drivers/block/aoe/aoecmd.c +++ gregkh-2.6/drivers/block/aoe/aoecmd.c -@@ -28,6 +28,7 @@ new_skb(struct net_device *if_dev, unsig +@@ -28,6 +28,7 @@ new_skb(struct net_device *if_dev, ulong skb->protocol = __constant_htons(ETH_P_AOE); skb->priority = 0; skb_put(skb, len); |