]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: ef100 representor RX top half
authorEdward Cree <ecree.xilinx@gmail.com>
Thu, 28 Jul 2022 18:57:45 +0000 (19:57 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 30 Jul 2022 04:22:05 +0000 (21:22 -0700)
commitc554ec2ddec8689c625a6904d288b6975bf09bc2
tree7abdba8cee9dbe284334aa3c08c9051231532581
parent0a3e46b972cab1a523a8f2bd26787618093784ea
sfc: ef100 representor RX top half

Representor RX uses a NAPI context driven by a 'fake interrupt': when
 the parent PF receives a packet destined for the representor, it adds
 it to an SKB list (efv->rx_list), and schedules NAPI if the 'fake
 interrupt' is primed.  The NAPI poll then pulls packets off this list
 and feeds them to the stack with netif_receive_skb_list().
This scheme allows us to decouple representor RX from the parent PF's
 RX fast-path.
This patch implements the 'top half', which builds an SKB, copies data
 into it from the RX buffer (which can then be released), adds it to
 the queue and fires the 'fake interrupt' if necessary.

Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/sfc/ef100_rep.c
drivers/net/ethernet/sfc/ef100_rep.h