* [PATCH] fix SMP lockup in eepro100 with ethtool on unused interface
@ 2003-03-07 21:38 Jason Lunz
2003-03-17 20:19 ` [PATCH eepro100] fix SMP deadlock (uninitialized spinlock) Jason Lunz
0 siblings, 1 reply; 2+ messages in thread
From: Jason Lunz @ 2003-03-07 21:38 UTC (permalink / raw)
To: linux-kernel
When support for the GSET and SSET ethtool ioctls was added to
eepro100.c in 2.4.20, the tx lock was overloaded to serialize their use.
Unfortunately, this lock is only initialized in dev->open(), causing
ethtool to deadlock the machine when used on an unconfigured eepro100
interface.
The fix is to initialize the spinlock at probe time. Jeff, the patch
below is against 2.4.21-pre5, but I'm assuming you'll integrate it into
2.5 and push it to Linus as well as Marcelo. It applies to both trees.
Jason
--- linux-2.4.21-pre5/drivers/net/eepro100.c Thu Feb 27 14:21:34 2003
+++ linux-eepro100/drivers/net/eepro100.c Fri Mar 7 16:38:17 2003
@@ -842,6 +842,7 @@
sp->lstats = (struct speedo_stats *)(sp->tx_ring + TX_RING_SIZE);
sp->lstats_dma = TX_RING_ELEM_DMA(sp, TX_RING_SIZE);
init_timer(&sp->timer); /* used in ioctl() */
+ spin_lock_init(&sp->lock);
sp->mii_if.full_duplex = option >= 0 && (option & 0x10) ? 1 : 0;
if (card_idx >= 0) {
@@ -993,7 +994,6 @@
sp->dirty_tx = 0;
sp->last_cmd = 0;
sp->tx_full = 0;
- spin_lock_init(&sp->lock);
sp->in_interrupt = 0;
/* .. we can safely take handler calls during init. */
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH eepro100] fix SMP deadlock (uninitialized spinlock)
2003-03-07 21:38 [PATCH] fix SMP lockup in eepro100 with ethtool on unused interface Jason Lunz
@ 2003-03-17 20:19 ` Jason Lunz
0 siblings, 0 replies; 2+ messages in thread
From: Jason Lunz @ 2003-03-17 20:19 UTC (permalink / raw)
To: linux-kernel
When support for the ETHTOOL_GSET and ETHTOOL_SSET ethtool methods was
added to eepro100.c in 2.4.20, the tx lock was overloaded to serialize
their use. Unfortunately, this lock is only initialized in dev->open(),
causing ethtool to deadlock the machine when used on a never-opened
eepro100 interface.
The fix is to initialize the spinlock at probe time. The patch below is
against 2.4.21-pre5, but also applies to 2.5.
please apply,
Jason
--- linux-2.4.21-pre5/drivers/net/eepro100.c Thu Feb 27 14:21:34 2003
+++ linux-eepro100/drivers/net/eepro100.c Fri Mar 7 16:38:17 2003
@@ -842,6 +842,7 @@
sp->lstats = (struct speedo_stats *)(sp->tx_ring + TX_RING_SIZE);
sp->lstats_dma = TX_RING_ELEM_DMA(sp, TX_RING_SIZE);
init_timer(&sp->timer); /* used in ioctl() */
+ spin_lock_init(&sp->lock);
sp->mii_if.full_duplex = option >= 0 && (option & 0x10) ? 1 : 0;
if (card_idx >= 0) {
@@ -993,7 +994,6 @@
sp->dirty_tx = 0;
sp->last_cmd = 0;
sp->tx_full = 0;
- spin_lock_init(&sp->lock);
sp->in_interrupt = 0;
/* .. we can safely take handler calls during init. */
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-03-17 20:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-07 21:38 [PATCH] fix SMP lockup in eepro100 with ethtool on unused interface Jason Lunz
2003-03-17 20:19 ` [PATCH eepro100] fix SMP deadlock (uninitialized spinlock) Jason Lunz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®