]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Divide a page into 32K buffers for the aggregation ring if necessary.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 25 Apr 2016 06:30:51 +0000 (02:30 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Apr 2016 20:18:45 +0000 (16:18 -0400)
commitc95d7a1cd6837e2ca33c31faa3f5fb08e5210f75
tree09e48f1ba0bfe519bc81483acf0f6cc48adeba44
parentdd6555cd1a9cab883fd78b546460fa76454c7eca
bnxt_en: Divide a page into 32K buffers for the aggregation ring if necessary.

If PAGE_SIZE is bigger than BNXT_RX_PAGE_SIZE, that means the native CPU
page is bigger than the maximum length of the RX BD.  Divide the page
into multiple 32K buffers for the aggregation ring.

Add an offset field in the bnxt_sw_rx_agg_bd struct to keep track of the
page offset of each buffer.  Since each page can be referenced by multiple
buffer entries, call get_page() as needed to get the proper reference
count.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h