]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Limit RX BD pages to be no bigger than 32K.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 25 Apr 2016 06:30:50 +0000 (02:30 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Apr 2016 20:18:45 +0000 (16:18 -0400)
commitdd6555cd1a9cab883fd78b546460fa76454c7eca
treecd99556767a8f2ca46e8bc5cb0f8981689a6126a
parent3a966c58a37c7eb5d6c39a7abe2b6e0160e5f081
bnxt_en: Limit RX BD pages to be no bigger than 32K.

The RX BD length field of this device is 16-bit, so the largest buffer
size is 65535.  For LRO and GRO, we allocate native CPU pages for the
aggregation ring buffers.  It won't work if the native CPU page size is
64K or bigger.

We fix this by defining BNXT_RX_PAGE_SIZE to be native CPU page size
up to 32K.  Replace PAGE_SIZE with BNXT_RX_PAGE_SIZE in all appropriate
places related to the rx aggregation ring logic.

The next patch will add additional logic to divide the page into 32K
chunks for aggrgation ring buffers if PAGE_SIZE is bigger than
BNXT_RX_PAGE_SIZE.

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