diff --git a/arch/arm64/configs/phytium_defconfig b/arch/arm64/configs/phytium_defconfig index 84078331524e899a6e486d6994193c81640b8eb7..e2feafb59c8e9e55a2d5adca0c5cd26f06a0dddb 100644 --- a/arch/arm64/configs/phytium_defconfig +++ b/arch/arm64/configs/phytium_defconfig @@ -1,4 +1,4 @@ -CONFIG_LOCALVERSION="-phytium-embedded-v3.2" +CONFIG_LOCALVERSION="-phytium-embedded-v3.3" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y @@ -41,6 +41,7 @@ CONFIG_ARCH_PHYTIUM=y CONFIG_ARM64_VA_BITS_48=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y +CONFIG_ARM64_BOOTPARAM_HOTPLUG_CPU0=y CONFIG_NUMA=y CONFIG_XEN=y CONFIG_COMPAT=y diff --git a/drivers/net/ethernet/phytium/phytmac_main.c b/drivers/net/ethernet/phytium/phytmac_main.c index ccdb2be4ab0bb20655b558ba30de9db773084bc8..1f4e9a2b97ee4facf64420d4dc6ef46095f9d6d8 100644 --- a/drivers/net/ethernet/phytium/phytmac_main.c +++ b/drivers/net/ethernet/phytium/phytmac_main.c @@ -1131,7 +1131,7 @@ static struct sk_buff *phytmac_rx_mbuffer(struct phytmac_queue *queue) for (rx_tail = queue->rx_tail; ; rx_tail++) { desc = phytmac_get_rx_desc(queue, rx_tail); if (!hw_if->rx_complete(desc)) - return NULL; + return ERR_PTR(-EAGAIN); if (hw_if->rx_pkt_start(desc)) { if (first_frag != -1) @@ -1218,6 +1218,9 @@ static int phytmac_rx(struct phytmac_queue *queue, struct napi_struct *napi, if (pdata->xdp_prog) netdev_warn(pdata->ndev, "xdp does not support multiple buffers!!\n"); skb = phytmac_rx_mbuffer(queue); + if (PTR_ERR(skb) == -EAGAIN) { + break; + } } if (!skb) {