This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: XXXX_can_send function -- HELP NEEDED


On Thu, 2005-08-11 at 13:40 -0700, mkhoyila@uci.edu wrote:
> Hi all and Gary,
> 
> I resolved one of my issues that I was seeing unsolicited interrupts. It
> was unrelaed to my ehternet driver.
> 
> I still have the issue of XXXX_can_send function being called repeatedly.
> Here is order of events that happen in the begining. I hope by looking at
> these prints out, you might have suggestions where I start looking at.
> Thanks again
> Michael
> 
> bcm63xx_start
> bcm63xx_can_send
> bcm63xx_can_send: return 4 txFreeBds
> bcm63xx_can_send
> bcm63xx_can_send: return 4 txFreeBds
> bcm63xx_send: 1 sg's, 42 bytes, KEY 2147982464
> 
> This is what it is trying to send out:
> ffffffffffff21012108860180640121012108c0a818000000c0a818
> 
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm63xx_start
> bcm63xx_stop
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_send: 1 sg's, 42 bytes, KEY 2147982336
> 
> This is what it is trying to send out:
> ffffffffffff21012108860180640121012108c0a818000000c0a818
> 
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm63xx_stop
> bcm63xx_start
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm63xx_enet_poll_timer
> poll_timer: calling drv_dsr
> bcm63xx_deliver
>  __do _deliver
> __rx_poll
> __tx_poll
> __tx_poll: calling tx_done

Why is '__tx_poll' calling 'tx_done' if no packets have ever been sent 
out?  I noticed that your 'can_send' routine called 'poll' and if this
is the case, you've got a wicked case of infinite recursion.

You should only call 'tx_done' when a packet has been posted to the
hardware and the hardware indicates that it has completed sending it
(or errored out)

> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_enet_poll_timer
> poll_timer: calling drv_dsr
> bcm63xx_deliver
>  __do _deliver
> __rx_poll
> __tx_poll
> __tx_poll: calling tx_done
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm63xx_enet_poll_timer
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> 
> 
> 
> 

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]