Prev: sh: Preemptible mmu_gather
Next: [PATCH] Support kernel/hotplug sysctl variable when !CONFIG_NET
From: Alexander Strakh on 7 Jun 2010 07:40 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 8 Jun 2010 09:30 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 17 Jun 2010 23:20 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/
|
Pages: 1 Prev: sh: Preemptible mmu_gather Next: [PATCH] Support kernel/hotplug sysctl variable when !CONFIG_NET |