From nobody Tue Sep 29 00:31:40 2026 Received: from mail-ua1-f98.google.com (mail-ua1-f98.google.com [209.85.222.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68D0345C6E3 for ; Fri, 14 Aug 2026 09:11:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786698674; cv=none; b=IVF5YjjPcP+VQzRWNErzDYXfF9yLr/GN9KVruVKFIc3tB9hsN/PndamnOzkdSSyqn/QL3gFkLy4t9PksKjW392bGZS2mz3WAH62/RPLXI09sFJSztIXVLFhCNFKa8JA/L0PXxbb1SJ/VXljKrVhUpdO2XXXDoMy4De6PnmnsBA4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786698674; c=relaxed/simple; bh=mitSiM7Zm2Qehwr9qj883Y6+SDxH1sOjtvMEjMsC6lI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gU1mK0f1mVqr2JIvnxXdl0xWesBxM0NvUqPh2gOud0tHD4/EsHkUjkFjhxtC105kej0w7FasyR21yX18l8UW39hVeAdwke5S0CQRUScBc22fsHl1Nwidv6WZptAQwREvhu2BABf9UkP97hLBkxWjVprIx+8fvx9ItyqjgI8Kx/o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=HkwuoYgw; arc=none smtp.client-ip=209.85.222.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="HkwuoYgw" Received: by mail-ua1-f98.google.com with SMTP id a1e0cc1a2514c-977168e4f3dso452729241.0 for ; Fri, 14 Aug 2026 02:11:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786698672; x=1787303472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=kN3cxg4FbIo8tTISuz5oziD0hZFYkConcwf1MZhcyQs=; b=QK7Auuv/KYpMJf3PjLZlP/irPr1GDCdtuUzBfTuFXWIghZmyuHNsvA2YG7lyQ1KNlN 9cNdnBXKyMu9ddiC39s19Ptx4L16ki1mCkWK6jrmIqr+aa/eJiTzoKlrUXNrFdxIZOIu DO4o8rILalLboHRAStracNQMW7kjPusXbNr3SfHLJeccw54vob2xvhBqM+L18oWrtFy1 MnyGi53637Cj6cVUtyT7735Za4B6h2Rm5i+CR9JSU/jCLhjrYg1HhAgmC6pRRp94XSXQ dlF+5VknC8PmPvuLxm4Hr7ataAwOU3PHqDn3wbypoElnICnewcOQ/Q8f6W/orJMbKcDH qisw== X-Forwarded-Encrypted: i=1; AHgh+RqpSPSWoy853if7WloGdGIt8QTr4DBe/LZPPszp44Qo6HFlbYBeFuDw/dcb0t01W2A8vZiWcZowbL8zSIA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywwn50n7CWrgfjlGEgeGwwkLnIvUM82XeXnht37EdxD+BrqFbfK zUy71c1+3x+gFEdsI65bpn2Iz+lYXUaljh9dxIe6Wwku4VHeVGDPd78A1js9DP+farkBAV3LnVk 4juznNyFBWiHO0QxiR50B1wjwwaULTqs4YFVFjH652gmof4Q9O0LuQnx8CnA9CuD+0fJCDC7yE/ 3TFq9b/r2CLndw/fyu7E3zgx6nzUS80VSvDcGCz2GTjs1LYsCXt/KXG5UaPnXLQtPVjh7GKRAhG alc1zX1HacPulgl6g== X-Gm-Gg: AR+sD10C1+Rs6DsB6uX46RHG3F2fZ9xMx3Pja4F8qxKv5R13mViUOvkRdVHYRXDrsOB d3WQZdW7+dHlcv3MY8Lq79cRe5ftT/Rme45MwPnmCdggC+Aj7VT6SvpHPsqlwYvfVoveb90lZom 9JGaiyxFUcvKPJDQY/KWrlmaGisPVd/Lt/Sqh7FBmpffohYQ4fAjTCfYRGmKOIjv3+pGgkqIZSe Ity2P8zCXkrt9qwKDSrbhyEFkfZUGcW8yh2byaiHh+D3UZBZ30zy5RS50lnYOS851dRizHr98UW tAY2Y/DX1WQrlIxBLfS0dCyCOfKtRQPnXRxyVmTYqu6HRyKtmpYQs242rLWiup+QFCwK2/HVWUX Ye9432ueDTPJ5Rk6ZjknUjCm2drzJD0LjValkbORofFxKiB8vmAv9n3un0nlfDNfHdnjl7mPnLO xXnGrGRYSEk8RrEPpomswvgicGN+nFdOLRvg== X-Received: by 2002:a05:6122:1807:b0:5c1:1c9c:c2a7 with SMTP id 71dfb90a1353d-5c591cbd9ffmr895275e0c.1.1786698672207; Fri, 14 Aug 2026 02:11:12 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-20.dlp.protect.broadcom.com. [144.49.247.20]) by smtp-relay.gmail.com with ESMTPS id 71dfb90a1353d-5c597bcc31fsm294634e0c.5.2026.08.14.02.11.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Aug 2026 02:11:12 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-cb5cc1e13f8so650948a12.3 for ; Fri, 14 Aug 2026 02:11:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1786698671; x=1787303471; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=kN3cxg4FbIo8tTISuz5oziD0hZFYkConcwf1MZhcyQs=; b=HkwuoYgwEPqKN0koso6y9OIyhl45iVu7ai605RYTf/vvftVrH37c9asen0Kuf1rAsq 6Izbicj9FBntl+wu16710zMCSDBNJBDThskiOTscYui+N2Ys3WrJ3cpHm29Ftd4nHwAE JS9d/xvqrsj+PLpDw3jvjV/r+QEB0/0bp2Xfg= X-Forwarded-Encrypted: i=1; AHgh+RqwopA9F8y1OG0Dpwaz0MRcY4UXC9lJj0/EYq+fjGV0ovUJqDjo/Oq5xwfYU00/hF3fShmTeS6rNvjdjE0=@vger.kernel.org X-Received: by 2002:a05:6a21:3391:b0:3bf:a638:4376 with SMTP id adf61e73a8af0-3cc71ccc432mr4827082637.21.1786698670979; Fri, 14 Aug 2026 02:11:10 -0700 (PDT) X-Received: by 2002:a05:6a21:3391:b0:3bf:a638:4376 with SMTP id adf61e73a8af0-3cc71ccc432mr4827020637.21.1786698670453; Fri, 14 Aug 2026 02:11:10 -0700 (PDT) Received: from localhost.localdomain ([192.19.203.250]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1413887e3e7sm7056408c88.9.2026.08.14.02.11.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 02:11:10 -0700 (PDT) From: Vikas Gupta To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, leonro@nvidia.com, jgg@nvidia.com, bhargava.marreddy@broadcom.com, rahul-rg.gupta@broadcom.com, vsrama-krishna.nemani@broadcom.com, rajashekar.hudumula@broadcom.com, ajit.khaparde@broadcom.com, siva.kallam@broadcom.com, usman.ansari@broadcom.com, Vikas Gupta Subject: [PATCH net-next 1/2] bng_re: add support for the shutdown callback Date: Fri, 14 Aug 2026 14:40:53 +0530 Message-ID: <20260814091054.359508-2-vikas.gupta@broadcom.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260814091054.359508-1-vikas.gupta@broadcom.com> References: <20260814091054.359508-1-vikas.gupta@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" From: "Usman S. Ansari" At present it calls bng_re_remove(), which adequately handles device teardown on shutdown. Appropriate shutdown-specific handling will be introduced in the future. Signed-off-by: Usman S. Ansari Reviewed-by: Siva Reddy Kallam Signed-off-by: Vikas Gupta --- drivers/infiniband/hw/bng_re/bng_dev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/infiniband/hw/bng_re/bng_dev.c b/drivers/infiniband/hw= /bng_re/bng_dev.c index 311c8bc93160..42b473919d09 100644 --- a/drivers/infiniband/hw/bng_re/bng_dev.c +++ b/drivers/infiniband/hw/bng_re/bng_dev.c @@ -477,6 +477,11 @@ static void bng_re_remove(struct auxiliary_device *ade= v) kfree(dev_info); } =20 +static void bng_re_shutdown(struct auxiliary_device *adev) +{ + bng_re_remove(adev); +} + static const struct auxiliary_device_id bng_re_id_table[] =3D { { .name =3D BNG_RE_ADEV_NAME ".rdma", }, {}, @@ -488,6 +493,7 @@ static struct auxiliary_driver bng_re_driver =3D { .name =3D "rdma", .probe =3D bng_re_probe, .remove =3D bng_re_remove, + .shutdown =3D bng_re_shutdown, .id_table =3D bng_re_id_table, }; =20 --=20 2.47.1 From nobody Tue Sep 29 00:31:40 2026 Received: from mail-pj1-f98.google.com (mail-pj1-f98.google.com [209.85.216.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 315A445A28C for ; Fri, 14 Aug 2026 09:11:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786698680; cv=none; b=dYJtbOdHFzIcbW17fqoOKK09v8cjWt+Xlpi7z4MPOBkaMxBXFYxKMFx7rpBWMdDqmwVzp+9ughgMuKA3Z9B5rRPmEH8NVZaw4U4eHSiOBXYSm4ac6drg9k98aBwm0isRZUTWYyu6N6oV7co2MJhWHVMAyXjAshD+xIrVy/r1KTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786698680; c=relaxed/simple; bh=4T3TGrPOmCcuyK6wQdLMcII19a6AyfhLY97Res9looE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lafLLzC0Pq06x0btOTOvWotLXCK3Ga4I/zvTfPBK4R/CYuhCRWAgRV/oO1JbQdHGStPMVFFRiayXuq5LavFkiuVel7lxg7bBRLJiUcOlf+hVuBUuwiVOUTiQxspOl1oH7MRMUkNM+NtKcHzTJa0YaP5Ql2NbCLWCj0KD2/6ybSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=hD97pG3m; arc=none smtp.client-ip=209.85.216.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="hD97pG3m" Received: by mail-pj1-f98.google.com with SMTP id 98e67ed59e1d1-38e58034d05so618533a91.2 for ; Fri, 14 Aug 2026 02:11:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786698678; x=1787303478; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=TSV0sSSXYSyAmLjxbnCOORhk+yB6Zbd6HUBS6OIrdiQ=; b=iOl+UTuP+hmOZVsKO9u+KKBl5vy7bibMICtTNIwl5a8Fk44ngW3DAejjjZ+0AeRf7v jA/uVUxxOTZbICnRpVHJNmo4sWIMbTJCRjxLYs1posQ2M2qQT8DNorIxgcmrvK3AAwDg GoaL7TyEytSDqN9l7gVEFcKWlUfLAyAK1TnL1FKKAOEHxQ2OHMOpFhl56Oed+Yu17pqb uJv5OcLdI7xmbqBKmUokZKckZkr8fvyuZGBfeq7pCw5aIqw/q4gyw4irjVvZIn4wkGfl hCCoBIHNoIRTaw3I11bBsjXKLiFTXayPuwyt74/VOAEugfdNPr9YDIxO1JP7o043w4SX CLVw== X-Forwarded-Encrypted: i=1; AHgh+Rpb+JMW/j+9lBLbh+2z6vaMoEBqydcxDRMpLivqK8z1Kqc3hHGTWexpbvN+sdrlZ3bCx/zbI9e5w5Qw5rA=@vger.kernel.org X-Gm-Message-State: AOJu0YwAOyR9DNhJrHP4cDnTTB1vAYDwjWHLsXLFE/Qipm0PtGil2Pu5 RA7mPbTh+P0en2zu4XSrLNRVQHi2Mj+Fwl9eqoIo0APZigehBCajZwyeeMf57n9UcuoJrfPgxSS nw3tg8e4+fE2iiL5hCuAdSNM9pyNoDjotKvrgHnqNkddMxUSiRts7Cjk3s8GiAi9R7lrQ/EbcJm zQDr+4LrCpsYpt6xkrBgmpG5n0skAGrEarkaD+6WCr94cSstV2oXGDvw8cacTJSaXL1Dsia2J5q a0HU0WKu5n1YQ75zQ== X-Gm-Gg: AR+sD11hIrqMfz4NQG6zNh5RSo6WpQ7OvhnGwZ1cZApnZyR9wJUqa2t91hl/t8qdVyj ThMQP0aImGMuPaqsXfw+zj1sKRbXRB9DU9InVLfQGonCjI2dMtO2kwSj2P5yeUQQRMN+aTAiuKa vWURKIBEM7D45QRvZ23SvnCIxvzKo7SFKtaF/RM1GXVkU8QXtxo/trTd5v4AFz4v9iUnUd2z2hu 1fBOtnSieQF48r+s/tBFGblQsRZF6RGwAmJIF/5zvygvcoTQTEvwe84/gcVhj7ckKHaiYilgoQ4 ws/cljmldBSza3LxpN9JYd/rGfxO8aNO39fFC+LaQUjAS0mdwmkzXnRaUERR2BtslpKw7R92fha oqNaHWv/PsIFXIQliowhu5dh+BWEIERU8MatpQAEN4mpInH8d5TPDf+ajdPvw8BeheEY9+z7cVg r2Vvib5sTIbA/5UYS8XCW9cMEFRFX9dVmvsA== X-Received: by 2002:a17:90b:3fc8:b0:37d:f206:a2ac with SMTP id 98e67ed59e1d1-3933b762b96mr4855064a91.7.1786698678236; Fri, 14 Aug 2026 02:11:18 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-16.dlp.protect.broadcom.com. [144.49.247.16]) by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-394eadb8e04sm637530a91.10.2026.08.14.02.11.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Aug 2026 02:11:18 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cb5cc1e13f8so651004a12.3 for ; Fri, 14 Aug 2026 02:11:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1786698676; x=1787303476; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=TSV0sSSXYSyAmLjxbnCOORhk+yB6Zbd6HUBS6OIrdiQ=; b=hD97pG3mA5ac0aNW0nw3iU9b1vnvLQaKWgU2XWfFbsTaRxT604itYGN4wqFAfYtTR6 OMIVEkYZ2tICX3Vac9C+onEIcfY1sqmdtJQkX9SEJxX4Ph20c0Y3W47BUu/cH8eNQi6X coKvFHlDXOUozrGpnkFsvSFqIpCMLaVXp9wD8= X-Forwarded-Encrypted: i=1; AHgh+RryMQmbw6GzYjvdLDoSsUIlJesZP4vXQ3yqVnrE8ofrJaoDU0mqBIQBSb3U8LrEjT3s86tTTyN4706hQhY=@vger.kernel.org X-Received: by 2002:a05:6a20:6f93:b0:3b4:9171:2573 with SMTP id adf61e73a8af0-3cc71e32e45mr4481832637.37.1786698676608; Fri, 14 Aug 2026 02:11:16 -0700 (PDT) X-Received: by 2002:a05:6a20:6f93:b0:3b4:9171:2573 with SMTP id adf61e73a8af0-3cc71e32e45mr4481785637.37.1786698676204; Fri, 14 Aug 2026 02:11:16 -0700 (PDT) Received: from localhost.localdomain ([192.19.203.250]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1413887e3e7sm7056408c88.9.2026.08.14.02.11.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 02:11:15 -0700 (PDT) From: Vikas Gupta To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, leonro@nvidia.com, jgg@nvidia.com, bhargava.marreddy@broadcom.com, rahul-rg.gupta@broadcom.com, vsrama-krishna.nemani@broadcom.com, rajashekar.hudumula@broadcom.com, ajit.khaparde@broadcom.com, siva.kallam@broadcom.com, usman.ansari@broadcom.com, Vikas Gupta , Dharmender Garg Subject: [PATCH net-next 2/2] bnge: add steps in bnge_shutdown() Date: Fri, 14 Aug 2026 14:40:54 +0530 Message-ID: <20260814091054.359508-3-vikas.gupta@broadcom.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260814091054.359508-1-vikas.gupta@broadcom.com> References: <20260814091054.359508-1-vikas.gupta@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" Since the driver now implements ndo_open and ndo_close with full link management, the shutdown callback must mirror the close sequence to ensure the device is brought down cleanly. Signed-off-by: Vikas Gupta Reviewed-by: Dharmender Garg Reviewed-by: Rahul Gupta --- .../net/ethernet/broadcom/bnge/bnge_core.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_core.c b/drivers/net/e= thernet/broadcom/bnge/bnge_core.c index 68b74eb2c3a2..9846d29b4fe3 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_core.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_core.c @@ -5,12 +5,14 @@ #include #include #include +#include =20 #include "bnge.h" #include "bnge_devlink.h" #include "bnge_hwrm.h" #include "bnge_hwrm_lib.h" #include "bnge_link.h" +#include "bnge_resc.h" =20 MODULE_LICENSE("GPL"); MODULE_DESCRIPTION(DRV_SUMMARY); @@ -406,12 +408,34 @@ static void bnge_remove_one(struct pci_dev *pdev) =20 static void bnge_shutdown(struct pci_dev *pdev) { + struct bnge_dev *bd =3D pci_get_drvdata(pdev); + struct net_device *dev; + + dev =3D bd ? bd->netdev : NULL; + if (!dev) + return; + + rtnl_lock(); + netdev_lock(dev); + + if (netif_running(dev)) + netif_close(dev); + + if (bnge_hwrm_func_drv_unrgtr(bd)) { + pcie_flr(pdev); + goto shutdown_exit; + } + bnge_free_irqs(bd); pci_disable_device(pdev); =20 if (system_state =3D=3D SYSTEM_POWER_OFF) { pci_wake_from_d3(pdev, 0); pci_set_power_state(pdev, PCI_D3hot); } + +shutdown_exit: + netdev_unlock(dev); + rtnl_unlock(); } =20 static struct pci_driver bnge_driver =3D { --=20 2.47.1