All of lore.kernel.org
 help / color / mirror / Atom feed
From: dragonfly@linux-vs.org
To: linux-kernel@vger.kernel.org
Cc: alan@lxorguk.ukuu.org.uk, marcelo.tosatti@cyclades.com, jiwang@ios.ac.cn
Subject: kernel-2.4.32 'drivers/net' bugs acknowledgement
Date: Wed, 26 Apr 2006 12:52:18 +0800	[thread overview]
Message-ID: <1146027138.444efc82168e4@mail.linux-vs.org> (raw)

Hi,
    Recently, I did a cursory check to the 'drivers/net' directory of
the official 2.4.32 kernel sources with the help of a validity check
tool i developed. The following are the bugs i think to be,
sincerely apply your acknowledgement. Hope it helpful to improve great
Linux. 

Best Regards,
Li Wang

Directory: drivers/net
1. File: 7990.c
   Type: Double Locking
   Function: lance_interrupt()
   Details:
   static void lance_interrupt (int irq, void *dev_id, struct pt_regs
*regs)
   {
	...
	spin_lock (&lp->devlock);  /* Line 411 */
	...
	spin_lock (&lp->devlock);  /* Line 419 */
	...
   }
2. File: aironet4500_core.c
   Type: Call may-block function in softirq context
   Function: awc_start_xmit()->awc_802_11_tx_find_path_and_post()
   Details:
   int awc_802_11_tx_find_path_and_post(struct net_device * dev, struct
sk_buff * skb)
   {
	...
	DOWN(&priv->tx_buff_semaphore);	/* Line 1591 */
	...
   }
3. File: appletalk/cops.c
   Type: As above
   Function: cops_timeout()->cops_jumpstart()->cops_reset(),
   cops_timeout()->cops_jumpstart()->cops_nodeid()
   Details:
   static void cops_reset(struct net_device *dev, int sleep)
   {
	...
	schedule();	/* Line 504 */
	...
   }
   static int cops_nodeid (struct net_device *dev, int nodeid)
   {
	...
	schedule();	/* Line 621 */
   	...
   }
4. File: de4x5.c   
   Type: Double locking
   Function: de4x5_interrupt()
   Details:
   static void de4x5_interrupt(int irq, void *dev_id, struct pt_regs
*regs)
   {
	...
 	spin_lock(&lp->lock);	/* Line 1640 */
        ...
	spin_lock_irqsave(&lp->lock, flags);	/* Line 1566,called by
de4x5_queue_pkt() */
	...
   }
5. File: declance.c
   Type: Unlock unlocked lock
   Function: lance_start_xmit()
   Details:
   static int lance_start_xmit(struct sk_buff *skb, struct net_device
*dev)
   {
	...
	spin_unlock_irq(&lp->lock);	/* Line 928 */
	...
   }	
6. File: ethertap.c
   Type: Call may-block function in softirq context
   Function: ethertap_rx()->ethertap_rx_skb()
   Details:
   static __inline__ int ethertap_rx_skb(struct sk_buff *skb, struct
net_device *dev)
   {
	...
	skb = skb_clone(skb, GFP_KERNEL);	/* Line 266 */
	...
   }
7. File: defxx.c
   Type: Call dev_kfree_skb() in hardware interrupt context
   Function:
dfx_interrupt()->dfx_int_common()->dfx_int_type_0_process()->dfx_xmt_flu
sh()
   Details:
   static void dfx_xmt_flush( DFX_board_t *bp )
   {
	...
	dev_kfree_skb(p_xmt_drv_descr->p_skb);	/* Line 3311 */
	...		
   }
8. File: ioc3-eth.c
   Type: Call may-block function in hardware interrupt context
   Function:
ioc3_interrupt()->ioc3_error()->ioc3_init()->ioc3_init_rings()->ioc3_all
oc_rings()
   Details:
   static void ioc3_alloc_rings(struct net_device *dev, struct
ioc3_private *ip,
		 struct ioc3 *ioc3)
   {
   	...
	ip->txr = (struct ioc3_etxd *)__get_free_pages(GFP_KERNEL, 2);	/* Line
1221 */
	...
   }
9. File: vlsi-ir.c
   Type: Call dev_kfree_skb() in hardware interrupt context
   Function: vlsi_interrupt()->vlsi_tx_interrupt()
   Details:
   static int vlsi_tx_interrupt(struct net_device *ndev)
   {
	...
	dev_kfree_skb(r->buf[r->tail].skb);	/* Line 693 */
	...
   }
10. File: ns83820.c
    Type: As above	
    Function:
ns83820_irq()->ns83820_do_isr()->ns83820_rx_kick()->rx_refill_atomic()
              ->ns83820_add_rx_skb()
    Details:
    static inline int ns83820_add_rx_skb(struct ns83820 *dev, struct
sk_buff *skb)
    {
 	...
	kfree_skb(skb);	/* Line 519 */
	...
    }
11. File: sb1000.c
    Type: As above
    Function: sb1000_interrupt()->sb1000_rx()
    Details:
    static inline int sb1000_rx(struct net_device *dev)
    {
	...
	dev_kfree_skb(skb);	/* Line 825 */
	...
    }
12. File: sgiseeq.c
    Type: Call may-block function in softirq context
    Function: timeout()->sgiseeq_reset()->init_seeq()->seeq_init_ring()
    Details:
    static int seeq_init_ring(struct net_device *dev)
    {
	...
	buffer = (unsigned long) kmalloc(PKT_BUF_SZ, GFP_KERNEL);	/* Line 184
*/
	...
    }
13. File: sk98lin/skge.c
    Type: Call dev_kfree_skb() in hardware interrupt context
    Function: SkGeIsr()->ReceiveIrq()
    Details:
    static void ReceiveIrq(
	SK_AC		*pAC,			/* pointer to adapter context */
	RX_PORT		*pRxPort,		/* pointer to receive port struct */
	SK_BOOL		SlowPathLock)	/* indicates if SlowPathLock is needed */
    {
	...
	DEV_KFREE_SKB(pMsg);	/* Line 2681 */
	...
	DEV_KFREE_SKB(pMsg);	/* Line 2730 */
	...
    }
14. File: wan/comx-hw-mixcom.c
    Type: As above
    Function: MIXCOM_interrupt()->mixcom_receive_frame(),
	      MIXCOM_interrupt()->hscx_fill_fifo(),
	      MIXCOM_interrupt()->mixcom_extended_interrupt()
    Details:
    static inline void mixcom_receive_frame(struct net_device *dev) 
    {
	...
	kfree_skb(hw->recving);	/* Line 340 */
	...
    }
    static inline void hscx_fill_fifo(struct net_device *dev)
    {
	...
 	kfree_skb(hw->sending);	/* Line 128 */
 	...
    }
    static inline void mixcom_extended_interrupt(struct net_device *dev)

    {
	...
	kfree_skb(hw->recving);	/* Line 358 */
	...
	kfree_skb(hw->sending);	/* Line 369 */
	...
	kfree_skb(hw->sending);	/* Line 404 */

    }
15. File: wan/lmc/lmc_main.c
    Type: As above
    Function: lmc_interrupt()->lmc_running_reset()->lmc_softreset()
    Details:
    static void lmc_softreset (lmc_softc_t * const sc) /*fold00*/
    {
	...
	dev_kfree_skb(sc->lmc_txq[i]);	/* Line 2196 */
	...
    }
16. File: wireless/airo.c
    Type: Call may-block function in hardware interrupt context
    Function:
airo_interrupt()->airo_send_event()->airo_read_mic()->PC4500_readrid()
    Details:
    static int PC4500_readrid(struct airo_info *ai, u16 rid, void *pBuf,
int len, int lock)
    {
	...
      	if (down_interruptible(&ai->sem))	/* Line 3219 */
	...
    }
    
     

   
	


             reply	other threads:[~2006-04-26  4:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-26  4:52 dragonfly [this message]
2006-04-26  5:20 ` kernel-2.4.32 'drivers/net' bugs acknowledgement Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1146027138.444efc82168e4@mail.linux-vs.org \
    --to=dragonfly@linux-vs.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=jiwang@ios.ac.cn \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.tosatti@cyclades.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.