Find the answer to your Linux question:
Results 1 to 2 of 2
Hi all I've issue where Kernel stopped sending network packets to driver after very first one, I'm sure its something I've done or not done in driver for kernel to ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Feb 2010
    Posts
    4

    kernel stopped sending network packets after first one..


    Hi all

    I've issue where Kernel stopped sending network packets to driver after very first one, I'm sure its something I've done or not done in driver for kernel to stop subsequence packets sending once the first one is sent out.

    Kernel : kernel-2.6.27.8-lpc32xx (Embedded Linux for ARM926EJS)

    My printk debugging points to "qdisc_restart(..)" in "sch_generic.c" always return zero, via
    "(unlikely((skb = dequeue_skb(q)) == NULL))" is always true after very first packet transmitted.

    Evidently I'm new to Kernel hacking and any pointers on what I should look into in my driver.. my feeling is I'm not doing something after first packet is sent out from my driver such that, subsequence packets are stucked !!!

    Thanks so much in advance.

  2. #2
    Just Joined!
    Join Date
    Feb 2010
    Posts
    4
    Finally found the issue.. it was a bit long winded.. thought it might be useful for someone else..

    1. Driver detect PHY address zero, which is not our PHY address.
    2. So after a few seconds time out it set the network transmit "struct Qdisc" transmit queue's "enqueue" function pointer from default "pfifo_fast_enqueue" to "noop_enqueue" which effectively drops the packet.
    3. Once the PHY address is resolved packets are going back and forth to device driver.

    I guess its network MAC & PHY driver issue..

    To the next problem

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •