Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp900588rwb; Mon, 26 Sep 2022 07:16:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7hB6jHVBJbLfZ7idmc9kbE86jv67rJV0E7fcftuOwClFTwFY2ALN+yPf5Dmwj9ehpq+3Nk X-Received: by 2002:a05:6402:34c2:b0:44f:322f:f0de with SMTP id w2-20020a05640234c200b0044f322ff0demr23095119edc.297.1664201774261; Mon, 26 Sep 2022 07:16:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664201774; cv=none; d=google.com; s=arc-20160816; b=wxg7+FtYQgCgY1Q9E2Y1yAodooRhotgIZjRQ0VmINPXjM3TOT2jvMko1rHR6f6imL7 fKXpv5z95DzALgKdL4nxcEXdGVlhKD4CTzRaOcU7UXDvLIB3HzMDieQuYZbDOKbNFIZT i3kMTbAHnQmS9fMSIVrFTspn5JNgpFRmmalrpr2cC0MZHzYTdFBskOtrxve9Ld9J1XL2 zAeBaDgZ2CnCWWByR9Gy+fsN1WTntR0TLlyV07AZyWnBAGjh1p9J2kH0j8R3XneT3+PX eUQewGLSE5ag6HeYqc3cJ7BcbVHH+GBINnbzWX51t5C6OpisVfmNz2RV8PABsm4dbQNq i0yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3eiwv2QxiOs16qAWnXFb5tpW4dCxYKBYxbP1nhxlLc4=; b=X6KqyYXVO8x7FJSzvOQd2XGEfmpVV6OmbPgZn291MRmU/WAnR847q6nYR8q+1HdLxB lAO5zkDqI7oIlzSKHLPYUAG5e7z41EKTWEXdw7O8cvVb0jgtGsQWS2gjaV88X+RZeye3 fsfopTlPpmldrdGBQp1a8jujRbcdhmDO3LWb61dHainsN4XhrSH+2sVAhv46wCs4y6iG T4m/h++fWknZ3hpKFrv+bJjeyIL4+wUf/PNMQN9AywGDmBCqWEfThXoleQdmfdctk7ED dlrJWBDzAPUYiajvxuwubuZddUxWlFNLC4DdQHjCHTIk0FrSkNMeAv2Hc2NRm6wHzIWl ptuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=UYgSCgVX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hs38-20020a1709073ea600b007829f6fed9dsi22842ejc.232.2022.09.26.07.15.39; Mon, 26 Sep 2022 07:16:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=UYgSCgVX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238860AbiIZLsC (ORCPT + 99 others); Mon, 26 Sep 2022 07:48:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239011AbiIZLp3 (ORCPT ); Mon, 26 Sep 2022 07:45:29 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0819774CE4; Mon, 26 Sep 2022 03:47:32 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 01AB060BB7; Mon, 26 Sep 2022 10:47:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CECCAC433D6; Mon, 26 Sep 2022 10:47:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1664189239; bh=hQcWRXxZ4BZEXkkxaFOZs/IaqlSrhGIRXSNxcRDbbQw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UYgSCgVXWSZ4xCO8ABbn1I65uxXSdWxACKirBbENqHzyS27jwGYxh3YB53y4/GgD+ QR4RO1NZx3WdJSo8jcrsqbNGikWtH26NwY03IwaN/G7qHQY8QCoczBH9Zx3VdDVDlz rsMkX9IcXx9sh8KG1fCV2Mt97TfLV8l/Q4OzqdYU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tianhao Zhao , =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= , Edward Cree , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.19 119/207] sfc: fix TX channel offset when using legacy interrupts Date: Mon, 26 Sep 2022 12:11:48 +0200 Message-Id: <20220926100811.892001916@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220926100806.522017616@linuxfoundation.org> References: <20220926100806.522017616@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Íñigo Huguet [ Upstream commit f232af4295653afa4ade3230462b3be15ad16419 ] In legacy interrupt mode the tx_channel_offset was hardcoded to 1, but that's not correct if efx_sepparate_tx_channels is false. In that case, the offset is 0 because the tx queues are in the single existing channel at index 0, together with the rx queue. Without this fix, as soon as you try to send any traffic, it tries to get the tx queues from an uninitialized channel getting these errors: WARNING: CPU: 1 PID: 0 at drivers/net/ethernet/sfc/tx.c:540 efx_hard_start_xmit+0x12e/0x170 [sfc] [...] RIP: 0010:efx_hard_start_xmit+0x12e/0x170 [sfc] [...] Call Trace: dev_hard_start_xmit+0xd7/0x230 sch_direct_xmit+0x9f/0x360 __dev_queue_xmit+0x890/0xa40 [...] BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 [...] RIP: 0010:efx_hard_start_xmit+0x153/0x170 [sfc] [...] Call Trace: dev_hard_start_xmit+0xd7/0x230 sch_direct_xmit+0x9f/0x360 __dev_queue_xmit+0x890/0xa40 [...] Fixes: c308dfd1b43e ("sfc: fix wrong tx channel offset with efx_separate_tx_channels") Reported-by: Tianhao Zhao Signed-off-by: Íñigo Huguet Acked-by: Edward Cree Link: https://lore.kernel.org/r/20220914103648.16902-1-ihuguet@redhat.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/sfc/efx_channels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/sfc/efx_channels.c b/drivers/net/ethernet/sfc/efx_channels.c index 032b8c0bd788..5b4d661ab986 100644 --- a/drivers/net/ethernet/sfc/efx_channels.c +++ b/drivers/net/ethernet/sfc/efx_channels.c @@ -319,7 +319,7 @@ int efx_probe_interrupts(struct efx_nic *efx) efx->n_channels = 1 + (efx_separate_tx_channels ? 1 : 0); efx->n_rx_channels = 1; efx->n_tx_channels = 1; - efx->tx_channel_offset = 1; + efx->tx_channel_offset = efx_separate_tx_channels ? 1 : 0; efx->n_xdp_channels = 0; efx->xdp_channel_offset = efx->n_channels; efx->legacy_irq = efx->pci_dev->irq; -- 2.35.1