From: Alexander Strakh on
KERNEL_VERSION: 2.6.35-rc1
SUBJECT: duble spinlock in function elp_start_xmit
SUBSCRIBE:
In driver drivers/net/3c505.c in function elp_start_xmit:

1. In line 1075 we have first spinlock. In the next line we called
check_3c505_dma:

1070 static netdev_tx_t elp_start_xmit(struct sk_buff *skb, struct net_device
*dev)
1071 {
1072 unsigned long flags;
1073 elp_device *adapter = netdev_priv(dev);
1074
1075 spin_lock_irqsave(&adapter->lock, flags);
1076 check_3c505_dma(dev);

2. In function check_3c505_dma we have second spinloock at line 301.

293 static inline void check_3c505_dma(struct net_device *dev)
294 {
295 elp_device *adapter = netdev_priv(dev);
296 if (adapter->dmaing && time_after(jiffies, adapter-
>current_dma.start_time + 10)) {
297 unsigned long flags, f;
298 pr_err("%s: DMA %s timed out, %d bytes left\n", dev-
>name,
299 adapter->current_dma.direction ? "download" :
"upload",
300 get_dma_residue(dev->dma));
301 spin_lock_irqsave(&adapter->lock, flags);


Found by Linux Device Drivers Verification Project (Svace Detector)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Christoph Fritz on
On Mon, 2010-06-07 at 15:17 +0400, Alexander Strakh wrote:
> KERNEL_VERSION: 2.6.35-rc1
> SUBJECT: duble spinlock in function elp_start_xmit

Not only in elp_start_xmit. This driver is for a pretty old and slow isa
ethernet card and I think nobody cares. To quote a comment from the
source: "[...] the concurrency protection is particularly awful".

Thanks,
Christoph


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: David Miller on
From: Christoph Fritz <chf.fritz(a)googlemail.com>
Date: Tue, 08 Jun 2010 15:26:45 +0200

> On Mon, 2010-06-07 at 15:17 +0400, Alexander Strakh wrote:
>> KERNEL_VERSION: 2.6.35-rc1
>> SUBJECT: duble spinlock in function elp_start_xmit
>
> Not only in elp_start_xmit. This driver is for a pretty old and slow isa
> ethernet card and I think nobody cares. To quote a comment from the
> source: "[...] the concurrency protection is particularly awful".

Indeed, I spent some time trying to unravel the locking mess
for these call chains to check_3c505_dma() and it was just
too much to sanely cure.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/