Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp822419pxb; Thu, 23 Sep 2021 11:15:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpVedm5IODuoK2tRxIshdE2sQZDk8Mi472MvC/5453L5oBrsrSj0MzOJ0UqkhZ7kVELDy8 X-Received: by 2002:a17:906:950f:: with SMTP id u15mr6670356ejx.131.1632420948857; Thu, 23 Sep 2021 11:15:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632420948; cv=none; d=google.com; s=arc-20160816; b=rDBT8RKZjfQXsbtV1l1T5yvEDpyUT7O/WLuDKOtXN5EOgLSSHjatIUYws5mvQJ1uKn +reIT5erm05IGqw0rVZhjfETPvO+/c9olFWgZDfpQNLA2qhRUoraFEh0oFoLdeOLGTjE OYlX0iI8FXNakohDLlSw/x+cj1v0XjDI31s4PEbyCAu4pZH108bI+lvNGH/QxW8qHILq tyYPXH7cSq3T2BRJYdTyJ48H6fJciRLvtYcNQbc7M4+0M59/qezFyyCsVNC4NyEI3dWV tawQ2QxV2OOrUTqK4KG2NhWQDEPA9nvsRHjnMGFx1I246ZX1D9gK6wuKYpWhIlpmGeJ5 UJjQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=km6V+0DtPLAw9jEr/D4kHjAg6/Sni1RDdOtnAeubbUE=; b=iF/qQPzQbaylGj3UQ2z6higUZkcjlZ21KyD0y18gNld0QcJRKfd2N/mj6wFoRbCXGk MUsOq3YVxKmTJ70jWOITAQyl/6Y0FXyfGkHS2VMh3j4aDaTmVa+ywsvPmsWNJpA2vMux Fe9QKID04KZ5RsKXGYAStmoIckegQ+PatIHzo/SZrvhn1Eaaket3k+vR13g11YitxT1E d72Ego/nydyRBxkAnKQzat9xeQrKtQ4nrZ8Jm56mUUxpdDIB6mA01hP/ynzMSeQrpcdx C1Wc2EmK1jJpPUrvwlDMJL3tFzJUPT8hf2vKWA0rOk+OUmeHVpL4fGcfddlnyQUEcY8+ 91UA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Hr251mLs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f21si6954537eds.595.2021.09.23.11.15.19; Thu, 23 Sep 2021 11:15:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Hr251mLs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242812AbhIWSPC (ORCPT + 99 others); Thu, 23 Sep 2021 14:15:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:39428 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242807AbhIWSOr (ORCPT ); Thu, 23 Sep 2021 14:14:47 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 29F4560F43; Thu, 23 Sep 2021 18:13:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1632420796; bh=pJhaA0qw+tHxdURheOHj0z2IzCKBecFnWm0GNA5bbeE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hr251mLslci+HiCYqTS4C9w0scjBN8ggWi8fnxO2gMBOZmeEvJu+w1sHzscsy2JOX wVurErB3bUIfnn5XJrqPbPM7fdx0pL2/haxOibKmVH2b/BxzjiHcYrVVv/ecy6/JP8 U9ySQGbJOI3t7TCCfYZGHxPqRG+B8vCxZy18xLXAtm54+6OGrFDleAJ7qZOgFA2oXX Akx6xGBd5SNSMXEb8w5n3pI7gQEnBQQGS1fUWWhs7oUc0earEuqAbiKTGQ7TKrQ7TF q9v4ODYqOk+53LqJsIh3Rm/7NiR6pa8otjW3JDgrv0sboVdeoxIGQjQtqQ876ZtpHg 2T1xsuSULFTnA== From: Leon Romanovsky To: "David S . Miller" , Jakub Kicinski Cc: Leon Romanovsky , Alexander Lobakin , Anirudh Venkataramanan , Ariel Elior , GR-everest-linux-l2@marvell.com, GR-QLogic-Storage-Upstream@marvell.com, Igor Russkikh , intel-wired-lan@lists.osuosl.org, "James E.J. Bottomley" , Javed Hasan , Jeff Kirsher , Jesse Brandeburg , Jiri Pirko , linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, "Martin K. Petersen" , Michael Chan , Michal Kalderon , netdev@vger.kernel.org, Sathya Perla , Saurav Kashyap , Tony Nguyen , Vasundhara Volam Subject: [PATCH net-next 6/6] qed: Don't ignore devlink allocation failures Date: Thu, 23 Sep 2021 21:12:53 +0300 Message-Id: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Leon Romanovsky devlink is a software interface that doesn't depend on any hardware capabilities. The failure in SW means memory issues, wrong parameters, programmer error e.t.c. Like any other such interface in the kernel, the returned status of devlink APIs should be checked and propagated further and not ignored. Fixes: 755f982bb1ff ("qed/qede: make devlink survive recovery") Signed-off-by: Leon Romanovsky --- drivers/net/ethernet/qlogic/qede/qede_main.c | 12 +++++------- drivers/scsi/qedf/qedf_main.c | 2 ++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index 9837bdb89cd4..ee4c3bd28a93 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c @@ -1176,19 +1176,17 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level, edev->devlink = qed_ops->common->devlink_register(cdev); if (IS_ERR(edev->devlink)) { DP_NOTICE(edev, "Cannot register devlink\n"); + rc = PTR_ERR(edev->devlink); edev->devlink = NULL; - /* Go on, we can live without devlink */ + goto err3; } } else { struct net_device *ndev = pci_get_drvdata(pdev); + struct qed_devlink *qdl; edev = netdev_priv(ndev); - - if (edev->devlink) { - struct qed_devlink *qdl = devlink_priv(edev->devlink); - - qdl->cdev = cdev; - } + qdl = devlink_priv(edev->devlink); + qdl->cdev = cdev; edev->cdev = cdev; memset(&edev->stats, 0, sizeof(edev->stats)); memcpy(&edev->dev_info, &dev_info, sizeof(dev_info)); diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c index 42d0d941dba5..94ee08fab46a 100644 --- a/drivers/scsi/qedf/qedf_main.c +++ b/drivers/scsi/qedf/qedf_main.c @@ -3416,7 +3416,9 @@ static int __qedf_probe(struct pci_dev *pdev, int mode) qedf->devlink = qed_ops->common->devlink_register(qedf->cdev); if (IS_ERR(qedf->devlink)) { QEDF_ERR(&qedf->dbg_ctx, "Cannot register devlink\n"); + rc = PTR_ERR(qedf->devlink); qedf->devlink = NULL; + goto err2; } } -- 2.31.1