From: Hao Chen Date: Sat, 26 Mar 2022 09:51:01 +0000 (+0800) Subject: net: hns3: add max order judgement for tx spare buffer X-Git-Tag: howlett/maple/20220722_2~876^2~15^2~4 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a89cbb16995bf15582e0d1bdb922ad1a54a2fa8c;p=users%2Fjedix%2Flinux-maple.git net: hns3: add max order judgement for tx spare buffer Add max order judgement for tx spare buffer to avoid triggering call trace, print related fail information instead, when user set tx spare buf size to a large value which causes order exceeding 10. Fixes: e445f08af2b1 ("net: hns3: add support to set/get tx copybreak buf size via ethtool for hns3 driver") Signed-off-by: Hao Chen Signed-off-by: Guangbin Huang Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 16137238ddbf..530ba8bef503 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -1038,6 +1038,12 @@ static void hns3_init_tx_spare_buffer(struct hns3_enet_ring *ring) return; order = get_order(alloc_size); + if (order >= MAX_ORDER) { + if (net_ratelimit()) + dev_warn(ring_to_dev(ring), "failed to allocate tx spare buffer, exceed to max order\n"); + return; + } + tx_spare = devm_kzalloc(ring_to_dev(ring), sizeof(*tx_spare), GFP_KERNEL); if (!tx_spare) {