bnxt_en: Fix page pool logic for page size >= 64K
authorSomnath Kotur <somnath.kotur@broadcom.com>
Mon, 31 Jul 2023 14:20:42 +0000 (07:20 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 1 Aug 2023 22:04:58 +0000 (15:04 -0700)
commitf6974b4c2d8e1062b5a52228ee47293c15b4ee1e
tree31d4066e975857364ec7f16612f1b291b0554190
parent3ff1617450eceb290ac17120fc172815e09a93cf
bnxt_en: Fix page pool logic for page size >= 64K

The RXBD length field on all bnxt chips is 16-bit and so we cannot
support a full page when the native page size is 64K or greater.
The non-XDP (non page pool) code path has logic to handle this but
the XDP page pool code path does not handle this.  Add the missing
logic to use page_pool_dev_alloc_frag() to allocate 32K chunks if
the page size is 64K or greater.

Fixes: 9f4b28301ce6 ("bnxt: XDP multibuffer enablement")
Link: https://lore.kernel.org/netdev/20230728231829.235716-2-michael.chan@broadcom.com/
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://lore.kernel.org/r/20230731142043.58855-2-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c