From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BBDCDC07E95 for ; Wed, 7 Jul 2021 07:37:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A0B8D61CB3 for ; Wed, 7 Jul 2021 07:37:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230439AbhGGHjy (ORCPT ); Wed, 7 Jul 2021 03:39:54 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:12696 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230427AbhGGHjx (ORCPT ); Wed, 7 Jul 2021 03:39:53 -0400 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 1677VuCR024373; Wed, 7 Jul 2021 07:37:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=aLsC26W/5i34c7x/0UQkrR6nd69Lg+K3xbaS0MzguWo=; b=pBBfwulWYZHqmMp5IxHYGleR/6sjuBc3JcJvmV04qmv3rEw6DR8cWINniJpPHlpOMV5c 6k4yGoJY29JZaQ6z71nuL8DFCykysrOqooTLfhJs6h56+XQWKcVX33lANjYwQ1cW4t4R 1iQVUN3ye1kpagmMxSv46IDZCW6fCHgd81mx3aoOxT3TrRP55xwVhJrvH/IYwUrGXkiH DmdbYw7uC6AXbsOY5gPQBC4ofSAgADLsLTzAhqzatFIncC/l/56kxiCEdChKAk2MbfZN 3R5Ofy2fZdpH/Sw9BXPi2YJjzFFw8RQ8xhev4pAirTI5V9X2xgyqvcQs0TNjMY1cHZK3 Fg== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 39n7wrr0fa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 07 Jul 2021 07:37:09 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1677UWOB023773; Wed, 7 Jul 2021 07:37:09 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2173.outbound.protection.outlook.com [104.47.73.173]) by userp3020.oracle.com with ESMTP id 39k1nwksj4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 07 Jul 2021 07:37:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JbDZJCM1olt2F1Yd2tx+PyN/vhmhHxm8gqel4/Cqb7Bw/DmuX+iH7UbXj7ccdW30zpNemTBiJAVS/pRvTlGzzGfg2FAAfRFPcTSsb5hm8hcJX8m3w+IgGxOSKrZuOccv4RIEmVLvOAu9ts0IVsrUlsVU0s7PqnugT0s1Q7VusvpHMggdHXb6APnDDR/ozK+9gQd3f9z4qnh9+aadEcSqrchuXNxMmSMJUbKXB+dffK65izpuR7I8QcW23ZriqCI66dMUjOzrUp30Pt3QzTPjjEXvkYCS/BID/QVENlHic1xhkcKaL8qowWz2NypnCgKvKCzXXdFAQEq837DfcjO61A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aQaGW542T+cTUbJldgw7kkiUCvHqOMuVQpz1EiZw6aA=; b=eE7qBuZIvVnQUY3rcZ55Efd40sZavxAsMDxw6sfnENzJLVA5++oiHEThMTHZAONnl0UfrSGQjzP63F1huwWfWtZKOdgI06qaErVfvzztKUQ54o8NhvxPqWgcLaurKhdKBTDKOSliom5P0QaDEkzhAVdIl+EwCaApaC0COybvseP5yPNXpseY+h8Im2RpHmWilypqow9/6oc3N4K/Xtk9uHHJUybKxRGdIB3tAw3AdA1y8HQUAP97J6m/V2o/o8uxnjgYj0MgRCxwqAUF/pUidTdgekMnZU+EtqC26eGs3QJZWvWgujNkFVmcJ1nDdeL1pyHyd5ZzQADfoEFCSuvIDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aQaGW542T+cTUbJldgw7kkiUCvHqOMuVQpz1EiZw6aA=; b=GlhZHXj44BMwP4gypsNXcqFaRnjenmfhr2MAW08cSrjzdPOcopuKVQY2ex0XeRymtwltsBr7sYfSPKI46PRVWJnPVb2c6brkvTQpw+K05M3QOSp84g7vLcQeI1NlNiHr7u/Yyg1ggCT29Fk0gEDZSBqTPtZ0bxOkueojI9BQBPg= Authentication-Results: lists.01.org; dkim=none (message not signed) header.d=none;lists.01.org; dmarc=none action=none header.from=oracle.com; Received: from MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) by MWHPR10MB1774.namprd10.prod.outlook.com (2603:10b6:301:9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.27; Wed, 7 Jul 2021 07:37:06 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::3413:3c61:5067:ba73]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::3413:3c61:5067:ba73%5]) with mapi id 15.20.4287.033; Wed, 7 Jul 2021 07:37:06 +0000 Date: Wed, 7 Jul 2021 10:36:47 +0300 From: Dan Carpenter To: kbuild@lists.01.org, =?iso-8859-1?B?zfFpZ28=?= Huguet Cc: lkp@intel.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org Subject: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() warn: missing error code 'ret' Message-ID: <202107070458.FO35EqwU-lkp@intel.com> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JNAP275CA0028.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4d::13) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from kadam (102.222.70.252) by JNAP275CA0028.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19 via Frontend Transport; Wed, 7 Jul 2021 07:37:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a0da4cd8-427b-4018-399a-08d9411a04f6 X-MS-TrafficTypeDiagnostic: MWHPR10MB1774: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:185; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 78XVIaoYQkMIj86tONhtCiNQJzLl5JC2ePlC9uIeTtn9m0/w2hzEd3CtPZz3e+ZYdh1LuEt24gNbYvKEBbNg8ejxAql9KbM96QVUY4qtW9d+Qsd489mB297eaZ0ZIqJF6K2BBeZILYWsh+lq7d9wjRewAK3IcFkap9A4Oxm5oU0qjuAwyyuT99FV4TiYclne3vjibQCRolAH836yP1RCvcniUVRn9osmpZB0InG9gNwkCnqTdXEcS0Ipno9X7aeLXdmtDE7W7Z8HyjFF4cBwT4VRiRoM7DGNp1VGW8XiMeSCD9a4P0AIVY9zgGjieYcU93e0/ULFdAVBVM/HllV+ortGZUrBa9oo7/BtA+Z5HIvoEJQTkP4/+ioi3EBhy1SRyg6Goj9azldP5I/49rCWfTblPX678qnMBbVcmMeC6ybKRWpsbhwNWOMCDfSjLn74NTvOsDdLCLSlzdbEC215C+dr/KSsyINd6i3YBQ30rc6L6KN9kVutlqW+bKPRyusQQQHRFgVlJnVt7GUixga0Q25s767DtlZMqiFNCDyzsBCqeCJTZHAVGsref0k/Mw6W/eCc1H+xk0+mXY3Getv9tSdn83Yqr6j9kOFaYMackf99PZtOiOOr8eW+UCgmC+hdhVQzpeCzTD9ozDRMmHQtaFnYpkxrtsq5JBEkFSM1/c22++wxWlV5Ly0FAbafcUO7c+ngmPELxPE01RQSwzR4rBrRO+7iBWy/gUVWefOGZ3zb2jh4qjzcFjTFX5Zp5lKiTsCUzdv+wPZY6oV/SnA3qAlpmXyydDKKFU6k5RZBBNqtmLaSwmcSOinrbEdOm5SP X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2365.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(366004)(376002)(346002)(396003)(39860400002)(316002)(38350700002)(478600001)(6486002)(956004)(66946007)(8936002)(4326008)(66556008)(66476007)(38100700002)(83380400001)(966005)(26005)(44832011)(9686003)(6496006)(8676002)(186003)(5660300002)(36756003)(52116002)(6916009)(2906002)(1076003)(86362001)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?Lb59x89wXuCTR5RLgtTqTl8zC2YnkmHur9JwJb31F1FWtRpgEevdqG8QI0?= =?iso-8859-1?Q?OlzjzuidlitmLh2I2cqtXUFt6kdesEMspWv1+/2Dy3ab/tOhkHhxLBBQW6?= =?iso-8859-1?Q?U3VMU4QpCHV2lqOraNGPcpEGvmE38he62CbSwbmMCBxoFHTmBRIzKlsABI?= =?iso-8859-1?Q?GO6BS55QP0CtmOq5JZdFyGA7p6sg2tsTD+hhgLQk8FI9nDRAAPyhVuCVs7?= =?iso-8859-1?Q?yUR+3DvjSAcW6GO0iIArnU3zFwx1Ph4TX+YOmdr3H/nIqcu3626lFecnkw?= =?iso-8859-1?Q?7rYwxIj7v0BREsfcoOjs/vy+zlm+HH6kbEnK7cCqzzweWb0661/jzkLBb/?= =?iso-8859-1?Q?qwp49/a+R14YNnLdkJwhpg3RYzkoDy/JXsooYMaoSbi1AsaVvz4rrms+53?= =?iso-8859-1?Q?M3UdZosh3pOISj4E1pOmobtFG2d68/+M00zbvsPeuk50pITcKkuRERosVk?= =?iso-8859-1?Q?cyd02fxNP3jwMXv8yTlNxkLoDdpwrv4pZP+dr/Wy9GLomRC3CT1FDFFM5r?= =?iso-8859-1?Q?ALVHlrmbcEx9pl1hmAkdzUmtq4v5zmVnBMLblj4FHUIu4Dn0D/v1Eg0YIf?= =?iso-8859-1?Q?xxn/4tFEXPUNSvF7P20dsmiYR4920Cg7Dw9o444/BLJvVjbhNQ9Xf0B1Mv?= =?iso-8859-1?Q?7wsYfRLScLhCl5KskyXBr9g+krrm+IoYI00VUf2TzU+3gB19cERs0MXOsi?= =?iso-8859-1?Q?x9CRSMKnr5SHSRmpmVrqx02+546Xop+TbYRaX7m9R6PXssS3UlxLfyxjOV?= =?iso-8859-1?Q?6Ufdt2R8X1wOuEzLyQUftxa3cegaRpAJzJF5c8hPZIZc3EvJmKCKmVsUNm?= =?iso-8859-1?Q?g32A40OEs6yGEIbYWekZ+FSaopTMpjx/xJkJ6Y99mKMRxXgFWU4SB2pccE?= =?iso-8859-1?Q?afYxd3fBKD1MpKcX4eIXgfVKGyucNFXLF0z+9+Ke3QjgP/DojclkE62CYn?= =?iso-8859-1?Q?waN61HXzHFGLdECilEwbuI+TBE39LzY9q3sCR/2Ursi1+M+x0ToRjDSxDw?= =?iso-8859-1?Q?H+a9jylTizAXpbxcpmOkhMGtxiRlMPqXkKwYkS8CV6Iw8Bl3QIEcd5beML?= =?iso-8859-1?Q?Q5Yyt1bLakuIEIvqI+iFUqp4pAeXtclH2bhFP5qjfUQHgN6vYrD9kFcun0?= =?iso-8859-1?Q?8ayiS68h9vDBOUnlEXymmBTK2XCx+VS9E0zxZwtGJfnrVJu/Wygp8iSAc5?= =?iso-8859-1?Q?HB3IcofE3cho/VAhCbI5i695BCVXfSTi5H3jG7hJoSO9Q8Z6xVQueoZ16s?= =?iso-8859-1?Q?tErtxquLRstixsOkd+UG9a5Z0lhp/fBABCS50kc/VDqK8Ly/JbJKCX0xlo?= =?iso-8859-1?Q?vI3zP4R9ned72F1APQbleoes2QfqESrv3mMu64FU5xaVDU6jFoMOVzXptF?= =?iso-8859-1?Q?E4vH5+7bOV?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0da4cd8-427b-4018-399a-08d9411a04f6 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2021 07:37:06.1584 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WEjWZlLTIWVVdk94L6uSLkGklDH55Ryx6BvbjrAaRGv8DYB/Q2IyAIbA5c/puTNFA/kNiSdlk/gkFqXUd/GaFiMdGlVAIziPmXcY64eihDs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1774 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10037 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107070043 X-Proofpoint-ORIG-GUID: hIlzOp8WZZUvquxvRLlhcoF-0jcqoXdi X-Proofpoint-GUID: hIlzOp8WZZUvquxvRLlhcoF-0jcqoXdi Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 79160a603bdb51916226caf4a6616cc4e1c58a58 commit: 52bfcdd87e83d9e69d22da5f26b1512ffc81deed net:CXGB4: fix leak if sk_buff is not used config: x86_64-randconfig-m001-20210706 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() warn: missing error code 'ret' vim +/ret +2571 drivers/net/ethernet/chelsio/cxgb4/sge.c 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2535 int cxgb4_ethofld_send_flowc(struct net_device *dev, u32 eotid, u32 tc) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2536 { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2537 struct port_info *pi = netdev2pinfo(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2538 struct adapter *adap = netdev2adap(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2539 enum sge_eosw_state next_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2540 struct sge_eosw_txq *eosw_txq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2541 u32 len, len16, nparams = 6; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2542 struct fw_flowc_wr *flowc; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2543 struct eotid_entry *entry; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2544 struct sge_ofld_rxq *rxq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2545 struct sk_buff *skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2546 int ret = 0; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2547 a422d5ff6defb1 Gustavo A. R. Silva 2020-06-19 2548 len = struct_size(flowc, mnemval, nparams); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2549 len16 = DIV_ROUND_UP(len, 16); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2550 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2551 entry = cxgb4_lookup_eotid(&adap->tids, eotid); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2552 if (!entry) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2553 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2554 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2555 eosw_txq = (struct sge_eosw_txq *)entry->data; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2556 if (!eosw_txq) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2557 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2558 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2559 skb = alloc_skb(len, GFP_KERNEL); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2560 if (!skb) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2561 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2562 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2563 spin_lock_bh(&eosw_txq->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2564 if (tc != FW_SCHED_CLS_NONE) { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2565 if (eosw_txq->state != CXGB4_EO_STATE_CLOSED) 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2566 goto out_free_skb; ^^^^^^^^^^^^^^^^^ Are these error paths? 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2567 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2568 next_state = CXGB4_EO_STATE_FLOWC_OPEN_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2569 } else { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2570 if (eosw_txq->state != CXGB4_EO_STATE_ACTIVE) 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 @2571 goto out_free_skb; Here too 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2572 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2573 next_state = CXGB4_EO_STATE_FLOWC_CLOSE_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2574 } 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2575 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2576 flowc = __skb_put(skb, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2577 memset(flowc, 0, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2578 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2579 rxq = &adap->sge.eohw_rxq[eosw_txq->hwqid]; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2580 flowc->flowid_len16 = cpu_to_be32(FW_WR_LEN16_V(len16) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2581 FW_WR_FLOWID_V(eosw_txq->hwtid)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2582 flowc->op_to_nparams = cpu_to_be32(FW_WR_OP_V(FW_FLOWC_WR) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2583 FW_FLOWC_WR_NPARAMS_V(nparams) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2584 FW_WR_COMPL_V(1)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2585 flowc->mnemval[0].mnemonic = FW_FLOWC_MNEM_PFNVFN; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2586 flowc->mnemval[0].val = cpu_to_be32(FW_PFVF_CMD_PFN_V(adap->pf)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2587 flowc->mnemval[1].mnemonic = FW_FLOWC_MNEM_CH; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2588 flowc->mnemval[1].val = cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2589 flowc->mnemval[2].mnemonic = FW_FLOWC_MNEM_PORT; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2590 flowc->mnemval[2].val = cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2591 flowc->mnemval[3].mnemonic = FW_FLOWC_MNEM_IQID; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2592 flowc->mnemval[3].val = cpu_to_be32(rxq->rspq.abs_id); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2593 flowc->mnemval[4].mnemonic = FW_FLOWC_MNEM_SCHEDCLASS; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2594 flowc->mnemval[4].val = cpu_to_be32(tc); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2595 flowc->mnemval[5].mnemonic = FW_FLOWC_MNEM_EOSTATE; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2596 flowc->mnemval[5].val = cpu_to_be32(tc == FW_SCHED_CLS_NONE ? 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2597 FW_FLOWC_MNEM_EOSTATE_CLOSING : 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2598 FW_FLOWC_MNEM_EOSTATE_ESTABLISHED); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2599 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2600 /* Free up any pending skbs to ensure there's room for 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2601 * termination FLOWC. 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2602 */ 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2603 if (tc == FW_SCHED_CLS_NONE) 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2604 eosw_txq_flush_pending_skbs(eosw_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2605 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2606 ret = eosw_txq_enqueue(eosw_txq, skb); 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2607 if (ret) 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2608 goto out_free_skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2609 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2610 eosw_txq->state = next_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2611 eosw_txq->flowc_idx = eosw_txq->pidx; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2612 eosw_txq_advance(eosw_txq, 1); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2613 ethofld_xmit(dev, eosw_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2614 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2615 spin_unlock_bh(&eosw_txq->lock); 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2616 return 0; 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2617 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2618 out_free_skb: 52bfcdd87e83d9 Íñigo Huguet 2021-05-05 2619 dev_consume_skb_any(skb); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2620 spin_unlock_bh(&eosw_txq->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2621 return ret; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2622 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0202901429516571620==" MIME-Version: 1.0 From: kernel test robot Subject: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() warn: missing error code 'ret' Date: Wed, 07 Jul 2021 04:18:04 +0800 Message-ID: <202107070458.FO35EqwU-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============0202901429516571620== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: "=C3=8D=C3=B1igo Huguet" tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: 79160a603bdb51916226caf4a6616cc4e1c58a58 commit: 52bfcdd87e83d9e69d22da5f26b1512ffc81deed net:CXGB4: fix leak if sk_= buff is not used date: 9 weeks ago :::::: branch date: 23 hours ago :::::: commit date: 9 weeks ago config: x86_64-randconfig-m001-20210706 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() wa= rn: missing error code 'ret' Old smatch warnings: drivers/net/ethernet/chelsio/cxgb4/sge.c:4169 process_intrq() warn: potenti= al spectre issue 'adap->sge.ingr_map' [w] drivers/net/ethernet/chelsio/cxgb4/sge.c:4484 t4_sge_alloc_rxq() warn: pote= ntial spectre issue 'adap->sge.ingr_map' [w] drivers/net/ethernet/chelsio/cxgb4/sge.c:4491 t4_sge_alloc_rxq() warn: pote= ntial spectre issue 'adap->sge.egr_map' [w] vim +/ret +2571 drivers/net/ethernet/chelsio/cxgb4/sge.c 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2524 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2525 /** 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2526 * cxgb4_ethofld_send_= flowc - Send ETHOFLD flowc request to bind eotid to tc. 29bbf5d7f5efe8 Rahul Lakkireddy 2020-06-24 2527 * @dev: netdevice 29bbf5d7f5efe8 Rahul Lakkireddy 2020-06-24 2528 * @eotid: ETHOFLD tid= to bind/unbind 29bbf5d7f5efe8 Rahul Lakkireddy 2020-06-24 2529 * @tc: traffic class.= If set to FW_SCHED_CLS_NONE, then unbinds the @eotid 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2530 * 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2531 * Send a FLOWC work r= equest to bind an ETHOFLD TID to a traffic class. 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2532 * If @tc is set to FW= _SCHED_CLS_NONE, then the @eotid is unbound from 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2533 * a traffic class. 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2534 */ 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2535 int cxgb4_ethofld_send= _flowc(struct net_device *dev, u32 eotid, u32 tc) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2536 { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2537 struct port_info *pi = =3D netdev2pinfo(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2538 struct adapter *adap = =3D netdev2adap(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2539 enum sge_eosw_state n= ext_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2540 struct sge_eosw_txq *= eosw_txq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2541 u32 len, len16, npara= ms =3D 6; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2542 struct fw_flowc_wr *f= lowc; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2543 struct eotid_entry *e= ntry; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2544 struct sge_ofld_rxq *= rxq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2545 struct sk_buff *skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2546 int ret =3D 0; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2547 = a422d5ff6defb1 Gustavo A. R. Silva 2020-06-19 2548 len =3D struct_size(f= lowc, mnemval, nparams); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2549 len16 =3D DIV_ROUND_U= P(len, 16); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2550 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2551 entry =3D cxgb4_looku= p_eotid(&adap->tids, eotid); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2552 if (!entry) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2553 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2554 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2555 eosw_txq =3D (struct = sge_eosw_txq *)entry->data; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2556 if (!eosw_txq) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2557 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2558 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2559 skb =3D alloc_skb(len= , GFP_KERNEL); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2560 if (!skb) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2561 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2562 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2563 spin_lock_bh(&eosw_tx= q->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2564 if (tc !=3D FW_SCHED_= CLS_NONE) { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2565 if (eosw_txq->state = !=3D CXGB4_EO_STATE_CLOSED) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2566 goto out_= free_skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2567 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2568 next_state =3D CXGB4= _EO_STATE_FLOWC_OPEN_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2569 } else { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2570 if (eosw_txq->state = !=3D CXGB4_EO_STATE_ACTIVE) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 @2571 goto out_= free_skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2572 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2573 next_state =3D CXGB4= _EO_STATE_FLOWC_CLOSE_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2574 } 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2575 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2576 flowc =3D __skb_put(s= kb, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2577 memset(flowc, 0, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2578 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2579 rxq =3D &adap->sge.eo= hw_rxq[eosw_txq->hwqid]; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2580 flowc->flowid_len16 = =3D cpu_to_be32(FW_WR_LEN16_V(len16) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2581 FW_WR_FLOWID_V(= eosw_txq->hwtid)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2582 flowc->op_to_nparams = =3D cpu_to_be32(FW_WR_OP_V(FW_FLOWC_WR) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2583 FW_FLOWC_WR_NP= ARAMS_V(nparams) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2584 FW_WR_COMPL_V(= 1)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2585 flowc->mnemval[0].mne= monic =3D FW_FLOWC_MNEM_PFNVFN; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2586 flowc->mnemval[0].val= =3D cpu_to_be32(FW_PFVF_CMD_PFN_V(adap->pf)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2587 flowc->mnemval[1].mne= monic =3D FW_FLOWC_MNEM_CH; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2588 flowc->mnemval[1].val= =3D cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2589 flowc->mnemval[2].mne= monic =3D FW_FLOWC_MNEM_PORT; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2590 flowc->mnemval[2].val= =3D cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2591 flowc->mnemval[3].mne= monic =3D FW_FLOWC_MNEM_IQID; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2592 flowc->mnemval[3].val= =3D cpu_to_be32(rxq->rspq.abs_id); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2593 flowc->mnemval[4].mne= monic =3D FW_FLOWC_MNEM_SCHEDCLASS; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2594 flowc->mnemval[4].val= =3D cpu_to_be32(tc); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2595 flowc->mnemval[5].mne= monic =3D FW_FLOWC_MNEM_EOSTATE; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2596 flowc->mnemval[5].val= =3D cpu_to_be32(tc =3D=3D FW_SCHED_CLS_NONE ? 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2597 FW_FLOWC_MNEM= _EOSTATE_CLOSING : 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2598 FW_FLOWC_MNEM= _EOSTATE_ESTABLISHED); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2599 = 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2600 /* Free up any pendin= g skbs to ensure there's room for 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2601 * termination FLOWC. 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2602 */ 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2603 if (tc =3D=3D FW_SCHE= D_CLS_NONE) 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2604 eosw_txq_flush_pendi= ng_skbs(eosw_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2605 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2606 ret =3D eosw_txq_enqu= eue(eosw_txq, skb); 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2607 if (ret) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2608 goto out_f= ree_skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2609 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2610 eosw_txq->state =3D n= ext_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2611 eosw_txq->flowc_idx = =3D eosw_txq->pidx; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2612 eosw_txq_advance(eosw= _txq, 1); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2613 ethofld_xmit(dev, eos= w_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2614 = 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2615 spin_unlock= _bh(&eosw_txq->lock); 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2616 return 0; 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2617 = 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2618 out_free_skb: 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2619 dev_consume= _skb_any(skb); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2620 spin_unlock_bh(&eosw_= txq->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2621 return ret; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2622 } 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2623 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0202901429516571620== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 nqMCAA== --===============0202901429516571620==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5990847567660553980==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() warn: missing error code 'ret' Date: Wed, 07 Jul 2021 10:36:47 +0300 Message-ID: <202107070458.FO35EqwU-lkp@intel.com> List-Id: --===============5990847567660553980== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: 79160a603bdb51916226caf4a6616cc4e1c58a58 commit: 52bfcdd87e83d9e69d22da5f26b1512ffc81deed net:CXGB4: fix leak if sk_= buff is not used config: x86_64-randconfig-m001-20210706 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/net/ethernet/chelsio/cxgb4/sge.c:2571 cxgb4_ethofld_send_flowc() wa= rn: missing error code 'ret' vim +/ret +2571 drivers/net/ethernet/chelsio/cxgb4/sge.c 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2535 int cxgb4_ethofld_send= _flowc(struct net_device *dev, u32 eotid, u32 tc) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2536 { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2537 struct port_info *pi = =3D netdev2pinfo(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2538 struct adapter *adap = =3D netdev2adap(dev); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2539 enum sge_eosw_state n= ext_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2540 struct sge_eosw_txq *= eosw_txq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2541 u32 len, len16, npara= ms =3D 6; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2542 struct fw_flowc_wr *f= lowc; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2543 struct eotid_entry *e= ntry; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2544 struct sge_ofld_rxq *= rxq; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2545 struct sk_buff *skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2546 int ret =3D 0; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2547 = a422d5ff6defb1 Gustavo A. R. Silva 2020-06-19 2548 len =3D struct_size(f= lowc, mnemval, nparams); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2549 len16 =3D DIV_ROUND_U= P(len, 16); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2550 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2551 entry =3D cxgb4_looku= p_eotid(&adap->tids, eotid); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2552 if (!entry) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2553 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2554 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2555 eosw_txq =3D (struct = sge_eosw_txq *)entry->data; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2556 if (!eosw_txq) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2557 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2558 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2559 skb =3D alloc_skb(len= , GFP_KERNEL); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2560 if (!skb) 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2561 return -ENOMEM; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2562 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2563 spin_lock_bh(&eosw_tx= q->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2564 if (tc !=3D FW_SCHED_= CLS_NONE) { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2565 if (eosw_txq->state = !=3D CXGB4_EO_STATE_CLOSED) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2566 goto out_= free_skb; ^^^= ^^^^^^^^^^^^^^ Are these error paths? 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2567 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2568 next_state =3D CXGB4= _EO_STATE_FLOWC_OPEN_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2569 } else { 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2570 if (eosw_txq->state = !=3D CXGB4_EO_STATE_ACTIVE) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 @2571 goto out_= free_skb; Here too 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2572 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2573 next_state =3D CXGB4= _EO_STATE_FLOWC_CLOSE_SEND; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2574 } 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2575 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2576 flowc =3D __skb_put(s= kb, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2577 memset(flowc, 0, len); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2578 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2579 rxq =3D &adap->sge.eo= hw_rxq[eosw_txq->hwqid]; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2580 flowc->flowid_len16 = =3D cpu_to_be32(FW_WR_LEN16_V(len16) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2581 FW_WR_FLOWID_V(= eosw_txq->hwtid)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2582 flowc->op_to_nparams = =3D cpu_to_be32(FW_WR_OP_V(FW_FLOWC_WR) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2583 FW_FLOWC_WR_NP= ARAMS_V(nparams) | 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2584 FW_WR_COMPL_V(= 1)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2585 flowc->mnemval[0].mne= monic =3D FW_FLOWC_MNEM_PFNVFN; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2586 flowc->mnemval[0].val= =3D cpu_to_be32(FW_PFVF_CMD_PFN_V(adap->pf)); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2587 flowc->mnemval[1].mne= monic =3D FW_FLOWC_MNEM_CH; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2588 flowc->mnemval[1].val= =3D cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2589 flowc->mnemval[2].mne= monic =3D FW_FLOWC_MNEM_PORT; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2590 flowc->mnemval[2].val= =3D cpu_to_be32(pi->tx_chan); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2591 flowc->mnemval[3].mne= monic =3D FW_FLOWC_MNEM_IQID; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2592 flowc->mnemval[3].val= =3D cpu_to_be32(rxq->rspq.abs_id); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2593 flowc->mnemval[4].mne= monic =3D FW_FLOWC_MNEM_SCHEDCLASS; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2594 flowc->mnemval[4].val= =3D cpu_to_be32(tc); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2595 flowc->mnemval[5].mne= monic =3D FW_FLOWC_MNEM_EOSTATE; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2596 flowc->mnemval[5].val= =3D cpu_to_be32(tc =3D=3D FW_SCHED_CLS_NONE ? 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2597 FW_FLOWC_MNEM= _EOSTATE_CLOSING : 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2598 FW_FLOWC_MNEM= _EOSTATE_ESTABLISHED); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2599 = 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2600 /* Free up any pendin= g skbs to ensure there's room for 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2601 * termination FLOWC. 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2602 */ 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2603 if (tc =3D=3D FW_SCHE= D_CLS_NONE) 69422a7e5d578a Rahul Lakkireddy 2020-04-30 2604 eosw_txq_flush_pendi= ng_skbs(eosw_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2605 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2606 ret =3D eosw_txq_enqu= eue(eosw_txq, skb); 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2607 if (ret) 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2608 goto out_f= ree_skb; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2609 = 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2610 eosw_txq->state =3D n= ext_state; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2611 eosw_txq->flowc_idx = =3D eosw_txq->pidx; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2612 eosw_txq_advance(eosw= _txq, 1); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2613 ethofld_xmit(dev, eos= w_txq); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2614 = 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2615 spin_unlock= _bh(&eosw_txq->lock); 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2616 return 0; 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2617 = 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2618 out_free_skb: 52bfcdd87e83d9 =C3=8D=C3=B1igo Huguet 2021-05-05 2619 dev_consume= _skb_any(skb); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2620 spin_unlock_bh(&eosw_= txq->lock); 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2621 return ret; 0e395b3cb1fb82 Rahul Lakkireddy 2019-11-07 2622 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5990847567660553980==--