From: Kars de Jong Date: Sat, 9 Dec 2006 09:29:58 +0000 (+0100) Subject: [PATCH] m68k/HP300: HP LANCE updates X-Git-Tag: v2.6.20-rc1~34^2~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e8858e932a81d827e194abf82faf32d02396f55;p=platform%2Fkernel%2Flinux-exynos.git [PATCH] m68k/HP300: HP LANCE updates - 7990: request_irq() should have SA_SHIRQ flag set - hplance_init() printed dev->name before register_netdev() had filled it in Signed-off-by: Kars de Jong Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds --- diff --git a/drivers/net/7990.c b/drivers/net/7990.c index 7733697..2d5ba07 100644 --- a/drivers/net/7990.c +++ b/drivers/net/7990.c @@ -500,7 +500,7 @@ int lance_open (struct net_device *dev) int res; /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */ - if (request_irq(lp->irq, lance_interrupt, 0, lp->name, dev)) + if (request_irq(lp->irq, lance_interrupt, SA_SHIRQ, lp->name, dev)) return -EAGAIN; res = lance_reset(dev); diff --git a/drivers/net/hplance.c b/drivers/net/hplance.c index 9c643f2..c991cb8 100644 --- a/drivers/net/hplance.c +++ b/drivers/net/hplance.c @@ -77,6 +77,7 @@ static int __devinit hplance_init_one(struct dio_dev *d, { struct net_device *dev; int err = -ENOMEM; + int i; dev = alloc_etherdev(sizeof(struct hplance_private)); if (!dev) @@ -93,6 +94,15 @@ static int __devinit hplance_init_one(struct dio_dev *d, goto out_release_mem_region; dio_set_drvdata(d, dev); + + printk(KERN_INFO "%s: %s; select code %d, addr %2.2x", dev->name, d->name, d->scode, dev->dev_addr[0]); + + for (i=1; i<6; i++) { + printk(":%2.2x", dev->dev_addr[i]); + } + + printk(", irq %d\n", d->ipl); + return 0; out_release_mem_region: @@ -119,8 +129,6 @@ static void __init hplance_init(struct net_device *dev, struct dio_dev *d) struct hplance_private *lp; int i; - printk(KERN_INFO "%s: %s; select code %d, addr", dev->name, d->name, d->scode); - /* reset the board */ out_8(va+DIO_IDOFF, 0xff); udelay(100); /* ariba! ariba! udelay! udelay! */ @@ -143,7 +151,6 @@ static void __init hplance_init(struct net_device *dev, struct dio_dev *d) */ dev->dev_addr[i] = ((in_8(va + HPLANCE_NVRAMOFF + i*4 + 1) & 0xF) << 4) | (in_8(va + HPLANCE_NVRAMOFF + i*4 + 3) & 0xF); - printk("%c%2.2x", i == 0 ? ' ' : ':', dev->dev_addr[i]); } lp = netdev_priv(dev); @@ -160,7 +167,6 @@ static void __init hplance_init(struct net_device *dev, struct dio_dev *d) lp->lance.lance_log_tx_bufs = LANCE_LOG_TX_BUFFERS; lp->lance.rx_ring_mod_mask = RX_RING_MOD_MASK; lp->lance.tx_ring_mod_mask = TX_RING_MOD_MASK; - printk(", irq %d\n", lp->lance.irq); } /* This is disgusting. We have to check the DIO status register for ack every