* what is the use of poll function int a net_device struct @ 2013-01-14 14:21 horseriver 2013-01-15 13:20 ` Rami Rosen 0 siblings, 1 reply; 3+ messages in thread From: horseriver @ 2013-01-14 14:21 UTC (permalink / raw) To: netdev hi: Where is the handler function defined for an netcard's IRQ ? When an IRQ has reached, how to wake_up the wait_queue of the socket? thanks1 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: what is the use of poll function int a net_device struct 2013-01-14 14:21 what is the use of poll function int a net_device struct horseriver @ 2013-01-15 13:20 ` Rami Rosen 2013-01-15 0:52 ` horseriver 0 siblings, 1 reply; 3+ messages in thread From: Rami Rosen @ 2013-01-15 13:20 UTC (permalink / raw) To: horseriver; +Cc: netdev Hi, On Mon, Jan 14, 2013 at 4:21 PM, horseriver <horserivers@gmail.com> wrote: > Where is the handler function defined for an netcard's IRQ look for the request_irq() method; you register the handler with this method. for example, in e1000e: http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/e1000e/netdev.c err = request_irq(adapter->msix_entries[vector].vector, e1000_intr_msix_rx, 0, adapter->rx_ring->name, netdev); so the handler is e1000_intr_msix_rx(). When an IRQ has reached, how to wake_up the wait_queue of the socket? TCP/UDP packet goes up from the driver to L3 and then to L4 (in case it is for this machine). In L4 you should find the wake_up of the wait_queue of the socket. Regards, Rami Rosen http://ramirose.wix.com/ramirosen ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: what is the use of poll function int a net_device struct 2013-01-15 13:20 ` Rami Rosen @ 2013-01-15 0:52 ` horseriver 0 siblings, 0 replies; 3+ messages in thread From: horseriver @ 2013-01-15 0:52 UTC (permalink / raw) To: Rami Rosen; +Cc: netdev On Tue, Jan 15, 2013 at 03:20:39PM +0200, Rami Rosen wrote: > Hi, > > On Mon, Jan 14, 2013 at 4:21 PM, horseriver <horserivers@gmail.com> wrote: > > Where is the handler function defined for an netcard's IRQ > > look for the request_irq() method; you register the handler with this method. > > for example, > in e1000e: > > http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/e1000e/netdev.c > > err = request_irq(adapter->msix_entries[vector].vector, > e1000_intr_msix_rx, 0, > adapter->rx_ring->name, > netdev); > > so the handler is e1000_intr_msix_rx(). > > When an IRQ has reached, how to wake_up the wait_queue of the socket? > TCP/UDP packet goes up from the driver to L3 and then to L4 (in case > it is for this machine). In L4 you should find the > wake_up of the wait_queue of the socket. thanks! In L4, wake_up should be fired by IRQ event. where is the code for fire this callback ? > > Regards, > Rami Rosen > http://ramirose.wix.com/ramirosen ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-01-16 4:26 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-01-14 14:21 what is the use of poll function int a net_device struct horseriver 2013-01-15 13:20 ` Rami Rosen 2013-01-15 0:52 ` horseriver
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox