diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-04 07:08:10 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-04 07:08:10 -0700 |
commit | a1d4ebdbb3806e9d2c37f32a043ec54f4534977c (patch) | |
tree | 44b2ce77adcb79849d8bbefbc254b03fccd6a394 /drivers/block/aoe/aoedev.c | |
parent | 742b0c905d970fd60893cce14a3c68b523504bc4 (diff) | |
parent | 0e57c7166675a86293f150d5ef7779edd629fe2a (diff) | |
download | kernel-crypto-a1d4ebdbb3806e9d2c37f32a043ec54f4534977c.tar.gz kernel-crypto-a1d4ebdbb3806e9d2c37f32a043ec54f4534977c.tar.xz kernel-crypto-a1d4ebdbb3806e9d2c37f32a043ec54f4534977c.zip |
Merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/aoe-2.6.git/
Diffstat (limited to 'drivers/block/aoe/aoedev.c')
-rw-r--r-- | drivers/block/aoe/aoedev.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/block/aoe/aoedev.c b/drivers/block/aoe/aoedev.c index ec16c64dd11..6e231c5a119 100644 --- a/drivers/block/aoe/aoedev.c +++ b/drivers/block/aoe/aoedev.c @@ -109,25 +109,22 @@ aoedev_set(ulong sysminor, unsigned char *addr, struct net_device *ifp, ulong bu spin_lock_irqsave(&devlist_lock, flags); for (d=devlist; d; d=d->next) - if (d->sysminor == sysminor - || memcmp(d->addr, addr, sizeof d->addr) == 0) + 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; - - if (d->sysminor != sysminor - || (d->flags & DEVFL_UP) == 0) { + memcpy(d->addr, addr, sizeof d->addr); + if ((d->flags & DEVFL_UP) == 0) { aoedev_downdev(d); /* flushes outstanding frames */ - memcpy(d->addr, addr, sizeof d->addr); d->sysminor = sysminor; d->aoemajor = AOEMAJOR(sysminor); d->aoeminor = AOEMINOR(sysminor); |