From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============9021483920816170954==" MIME-Version: 1.0 From: kernel test robot Subject: [cxl-cxl:pending 39/40] drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenced before check 'cxld' (see line 497) Date: Wed, 25 Aug 2021 07:47:22 +0800 Message-ID: <202108250714.GDy2jUg2-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============9021483920816170954== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org CC: Alison Schofield CC: Vishal Verma CC: Ira Weiny CC: Ben Widawsky CC: Dan Williams CC: linux-kernel(a)vger.kernel.org TO: Dan Williams tree: https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git pending head: 036a16a39e2fab9bf7279201d04cf7e90993521f commit: b7ca54b625514464bac2db59b754e95c49b66fb5 [39/40] cxl/core: Split de= coder setup into alloc + add :::::: branch date: 5 hours ago :::::: commit date: 5 hours ago config: x86_64-randconfig-m001-20210824 (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 smatch warnings: drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenc= ed before check 'cxld' (see line 497) drivers/cxl/core/bus.c:541 devm_cxl_add_decoder() error: uninitialized symb= ol 'dev'. vim +/cxld +501 drivers/cxl/core/bus.c 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 493 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 494 int dev= m_cxl_add_decoder(struct device *host, struct cxl_decoder *cxld, 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 495 int= *target_map) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 496 { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @497 struct= cxl_port *port =3D to_cxl_port(cxld->dev.parent); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 498 struct= device *dev; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 499 int rc= =3D 0, i; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 500 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @501 if (!c= xld) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 502 retur= n -EINVAL; 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 503 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 504 if (IS= _ERR(cxld)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 505 retur= n PTR_ERR(cxld); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 506 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 507 if (cx= ld->interleave_ways < 1) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 508 rc = =3D -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 509 goto = err; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 510 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 511 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 512 device= _lock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 513 if (li= st_empty(&port->dports)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 514 rc = =3D -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 515 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 516 for (i= =3D 0; rc =3D=3D 0 && target_map && i < cxld->nr_targets; i++) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 517 struc= t cxl_dport *dport =3D find_dport(port, target_map[i]); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 518 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 519 if (!= dport) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 520 rc = =3D -ENXIO; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 521 brea= k; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 522 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 523 dev_d= bg(host, "%s: target: %d\n", dev_name(dport->dport), i); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 524 cxld-= >target[i] =3D dport; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 525 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 526 device= _unlock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 527 if (rc) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 528 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 529 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 530 dev = =3D &cxld->dev; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 531 rc =3D= dev_set_name(dev, "decoder%d.%d", port->id, cxld->id); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 532 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 533 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 534 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 535 rc =3D= device_add(dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 536 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 537 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 538 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 539 return= devm_add_action_or_reset(host, unregister_cxl_dev, dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 540 err: 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 @541 put_de= vice(dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 542 return= rc; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 543 } 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 544 EXPORT_= SYMBOL_GPL(devm_cxl_add_decoder); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 545 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============9021483920816170954== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 PB3+BxkE9gZrOQIA --===============9021483920816170954==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4582222487496310017==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: [cxl-cxl:pending 39/40] drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenced before check 'cxld' (see line 497) Date: Wed, 25 Aug 2021 10:12:32 +0300 Message-ID: <202108250714.GDy2jUg2-lkp@intel.com> List-Id: --===============4582222487496310017== 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/cxl/cxl.git pending head: 036a16a39e2fab9bf7279201d04cf7e90993521f commit: b7ca54b625514464bac2db59b754e95c49b66fb5 [39/40] cxl/core: Split de= coder setup into alloc + add config: x86_64-randconfig-m001-20210824 (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 smatch warnings: drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenc= ed before check 'cxld' (see line 497) drivers/cxl/core/bus.c:541 devm_cxl_add_decoder() error: uninitialized symb= ol 'dev'. vim +/cxld +501 drivers/cxl/core/bus.c b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 494 int dev= m_cxl_add_decoder(struct device *host, struct cxl_decoder *cxld, 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 495 int= *target_map) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 496 { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @497 struct= cxl_port *port =3D to_cxl_port(cxld->dev.parent); = ^^^^^^^^^^^^^^^^ Dereference 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 498 struct= device *dev; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 499 int rc= =3D 0, i; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 500 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @501 if (!c= xld) = ^^^^^ Checked too late. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 502 retur= n -EINVAL; 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 503 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 504 if (IS= _ERR(cxld)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 505 retur= n PTR_ERR(cxld); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 506 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 507 if (cx= ld->interleave_ways < 1) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 508 rc = =3D -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 509 goto = err; "dev" not initialized@this point. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 510 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 511 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 512 device= _lock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 513 if (li= st_empty(&port->dports)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 514 rc = =3D -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 515 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 516 for (i= =3D 0; rc =3D=3D 0 && target_map && i < cxld->nr_targets; i++) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 517 struc= t cxl_dport *dport =3D find_dport(port, target_map[i]); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 518 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 519 if (!= dport) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 520 rc = =3D -ENXIO; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 521 brea= k; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 522 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 523 dev_d= bg(host, "%s: target: %d\n", dev_name(dport->dport), i); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 524 cxld-= >target[i] =3D dport; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 525 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 526 device= _unlock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 527 if (rc) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 528 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 529 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 530 dev = =3D &cxld->dev; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 531 rc =3D= dev_set_name(dev, "decoder%d.%d", port->id, cxld->id); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 532 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 533 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 534 = 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 535 rc =3D= device_add(dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 536 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 537 goto = err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 538 = b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 539 return= devm_add_action_or_reset(host, unregister_cxl_dev, dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 540 err: 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 @541 put_de= vice(dev); Should be: put_device(&cxld->dev); But it feels like a layering violation to drop a reference that was aquired by the caller. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 542 return= rc; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 543 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============4582222487496310017==-- 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.2 required=3.0 tests=BAYES_00,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 0C06AC4338F for ; Wed, 25 Aug 2021 07:13:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DD6E7613E6 for ; Wed, 25 Aug 2021 07:13:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239230AbhHYHNq (ORCPT ); Wed, 25 Aug 2021 03:13:46 -0400 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:49014 "EHLO mx0b-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238771AbhHYHNo (ORCPT ); Wed, 25 Aug 2021 03:13:44 -0400 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 17P51e16000899; Wed, 25 Aug 2021 07:12:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2021-07-09; bh=0N4RMAE/INDTVBcVfBj9D/S1EZVXLFRKmowvegLSK0U=; b=MRFmqQM0gV3IXW6hwQPI0RjcdbIP9IDpWxY0HlEGBwgsvHOrttnUYKVL+ezJFR1BXRTZ v0vSYpNUsWmkNbkvkmZgW1TvSZFVoLNMnbXQIEc1en+8XkCVLpnzmWD95rD5vxtgsgxI th/R95LuUV3SaESpNEnNt7lcujb568Do1X73sugrxNBTL+gwBvR3LBQujHhNyCh4v7n3 AodlwqM5otrWGgw5RyQxqm9Bji7y2bTUs7NXFSdluwKANzhi4RkPRgyHkcW7vsWtinIw behmvWE7zXU6Jhp+c59mp+54DPbEbdc6/ABeTuxUn8145/IvlVOn6SA+z6YqgRK0mliD zA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2020-01-29; bh=0N4RMAE/INDTVBcVfBj9D/S1EZVXLFRKmowvegLSK0U=; b=asbuOD9iVduoorVSqn15qT6tajkT7Sfd8BaOUgH52um6X/DkEW7T5zT6XY1lfdLyg3h2 DgA2SZLWpk0NRZiHuq0ORs55fORPph0HxrWAmPiAEyi6RFvROVVEGxusu8IKTnmXgJfF yNbuX5eqyY1w7tUrCd6I2oFEZoQBS3h44mCWwc0FGRRgShmyHI06nlOs9u7KQzTs67et 8CzOimOO4ymRPk+L96EKCYwti5TZUMbJ3i5ILRSOND00ZA0T8YvKNlkoZNy8TP/I7Cne 9X9tyufgrxgrYt0SL5CTKKmR+L2uIQ+tJq7asQOUgVMaHS7PTGyrwdP3IEXtpPVe4QRx 0g== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3amwpdajpk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 25 Aug 2021 07:12:55 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17P75bjZ155676; Wed, 25 Aug 2021 07:12:54 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by userp3030.oracle.com with ESMTP id 3ajpkytjdc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 25 Aug 2021 07:12:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fsExZJ0w9y0338akR6mcdr4n2e1FgyVfVMESkVDT8cD1CG5FRl+nfoNKGvboZNsrTlsh/BxMo1uT0XfPBxfoB639zrMXyltcT3xR92Y5+Gz4CwjMNoVtOClvhxFmTxbbHaUyg5BqKqFfWIXiOeOShurIhm/uEkVR0LNufSSyHe2zaxfhwMliW9Ti8uPRoocwwwfwBBIaPBRyGdWFQS9Q7QBGJTqMPV8USBXHmz7mFlGu8N2hVBdMiuQeOF4DyPhWOX1H5cphV8vEbqbRbMXT0O3gw3nVZLqFHkuvKJtSoRoTdNCMzeD9sY8wa6+0tEFZJJguwvsrQR769cSbFxf/5A== 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=0N4RMAE/INDTVBcVfBj9D/S1EZVXLFRKmowvegLSK0U=; b=jbi5N+Vq0kFPbP2g39rp1bt99IvwBLNhiE0+NN4yXp+QtSLljBBpXfUWb0MNHRPBwWivcgYd7G3jhAkmQZTVv5VQyq+Xvm0CZW9zjW2qkZOOzyJT0Jl5Cw+Kwwoa9ksqAnwVNg/8CGOWPfL2sdtm9jt+hJwTgvRhW6aEjTDvu9WAQAWq06TnUyCNQJwG92eSrhCVxorARTPFmO3I+YgiSDb8Ym9HKGtx/WS6Wt+bFWQW19yutQRF4M0THVxzxddqw0do1aEdu0Z5Z90KnNfHmQaZa+0S9AkQVh/gn6iVNimbRodYez/5+YE0H2CpRlogtAiBuG9cUcVVzfSQE32HfQ== 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=0N4RMAE/INDTVBcVfBj9D/S1EZVXLFRKmowvegLSK0U=; b=SqhyXMDQrsltKq7+jqHgBa++Hlw/vMIzG436mxO2MUUWx92agvFwpeUwBWerEhc/qAJdjFNIZpeNCqg1ZyuONR9t6M21gvMIzI10qEi/7hhFUDs4T3pQu7C1180BSkOsVuiiz1G6ohcqZZJ72zULjiSZFy/jAfJzmOUnS6vCVfY= 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 CO6PR10MB5570.namprd10.prod.outlook.com (2603:10b6:303:145::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Wed, 25 Aug 2021 07:12:51 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::5820:e42b:73d7:4268]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::5820:e42b:73d7:4268%7]) with mapi id 15.20.4457.018; Wed, 25 Aug 2021 07:12:51 +0000 Date: Wed, 25 Aug 2021 10:12:32 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Dan Williams Cc: lkp@intel.com, kbuild-all@lists.01.org, Alison Schofield , Vishal Verma , Ira Weiny , Ben Widawsky , Dan Williams , linux-kernel@vger.kernel.org Subject: [cxl-cxl:pending 39/40] drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenced before check 'cxld' (see line 497) Message-ID: <202108250714.GDy2jUg2-lkp@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JN2P275CA0007.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:3::19) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from kadam (62.8.83.99) by JN2P275CA0007.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Wed, 25 Aug 2021 07:12:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4bab008a-2598-48fa-0b15-08d96797c000 X-MS-TrafficTypeDiagnostic: CO6PR10MB5570: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:419; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0K+yqDq4xHIukfAQDldFfjfdzb+O6J9pL+EwRfeGnN7DYUOK4m5WQYKq9NztUP9aVJ8pfOhK6Ga+KN83q6aZcu8YaP0SZZaCmGIXKos/oOkS0lfVZrrQbj29r39c71olOEXuLUZXktigz01ZSyCBPbBVJCxFPXa2M8nZ5L51xOFFst7/PlfhFMh4iz9lOZ2ZreXaqeuNWAG8M5OgoURioNLfGUe3KQHbQrvR96Tm7+2iGBB9S/3oNjB6+R7ohrx9hIwNmb8SBvlTrunZag/Hh7Cfs3tlpZcAbSZEum2i/InvRpAewbI1OQGCBn6f6dmRPT4FCeplVdNVWRjjkvibjD+n7ymyJJ5QJgDoQivrZFrHJI+DpTNC02BvvafmVSjHzWc9IvjqIG/odgIDIGD2XoSM+gEMLkloYvMaHi6k7h9sOmD0Xe1aGibDN/DrUpt9V6FusbP+HHJ9R1ZHydW3mT44tfM7thIhvMv2199X4U4wYfWeKQA2Pj0EBEspXLTOnypyU/Fk3c9NaPt75NFcoILfzHN8CPmmc+VosyK4Tkv2Zo2L8IwMu6GgXu/CMWAGXOAygqG0Q0Af43cFBsmSWIGJrrDHBD22TonHotgEsvDKTd8iI5ZRoRZ50yxxMfvu0NyRmeS3fF4eLVMv3tauAP/miPqp4oHj38E9EeXNFwgyed5ynrlMojQxXtr4AOAjxtIOkBv5fM+yukLaTw0xpTU59O7QLfZrkiNebqrTvd6qOVFtODeRuPm7vbkjwILfFjCe+J7JGJW+wMKYItyKD5NRn5y3JfkK29bLVQ35rXbbWpPak1/1vhC+7dREeYOFvmlnf1DnYS/PxbQScwgZcg== 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:(346002)(39860400002)(366004)(396003)(136003)(376002)(966005)(6486002)(2906002)(54906003)(66556008)(44832011)(37006003)(1076003)(8676002)(66946007)(66476007)(4326008)(316002)(956004)(6916009)(52116002)(478600001)(38100700002)(38350700002)(36756003)(5660300002)(83380400001)(86362001)(26005)(186003)(6666004)(9686003)(8936002)(6496006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kEodEGsccvW0r7MMIp8BldX1O/jn4gOB03OqMDcOTFApsVZDAFjNKnIfyFpk?= =?us-ascii?Q?ok9gk9OyJvJqHUU8E99g1nP1rX34+9NmAPuO8+1oqxKJkEHekHrkKbfwXnEC?= =?us-ascii?Q?qsw+vHxHprVEVBvssvYTdsfI8jJH4EzkLSG+/IPPp5epamxOiI9k8/PmmRNe?= =?us-ascii?Q?fmckhHjSTj+ShVY8pwgIBwy/4kiWTNEOuOfDuKIltuoApZJpyZNPipm7jPXe?= =?us-ascii?Q?AkEMLiD5k6t8GbIpvkQOB4l2FHvxD0sMCXLhgICGs1ro1nW9kcEbMHMc9B3J?= =?us-ascii?Q?vL085lmtLRbNDQSlsYW89zaP2p93T/hg3qkrTGo3i0B+YIfSxQZa0ug/UVxD?= =?us-ascii?Q?99Ypags11Yl4Ypb1Moui2HLaKkSwlA3alfxURAT+KhcaOrPoKeVr91DFJw4U?= =?us-ascii?Q?LVoBFj4pT2+ERAbGoONpLngfD7wH4s6PVwwT5ZcHjcWtetr5Q870hW0yRsUa?= =?us-ascii?Q?xuyicAbfOClHyGgrxkzkPO9vp/iwJFFZ7r8wZPrFL4PN7MYzelv3cIAef12D?= =?us-ascii?Q?TTnEMQaAMk0NWX3J3V+QTNP9qpPqB7a3bK4KNE1krplRhGkibmwD6+Bg8bA/?= =?us-ascii?Q?3mTfWXPDHwUvqecuTD6yGmCg9C/+aUgRxZNlngNXfGhJV2gFHoatocsz3XIo?= =?us-ascii?Q?cnvXspqpd3pscMiiYRXUST4t9drXQ0VHAksmDgBHXFYamgD7rD38GE8xLPeU?= =?us-ascii?Q?41mMhP3C7E+Pm4ZbSByFqjRfk9M0rtm0OkYBVYfdP4t9HqZ4niJgjLyRNVSb?= =?us-ascii?Q?4xvoGSfMy6I2UmafGvDa/wbQXbmdxSm+omiv0NtykEzQ1j7HBeEGDcVDT661?= =?us-ascii?Q?losEeIcI+qg3KcdK1hh/gusq8kxIZjjTY5arBFqRsA2b/aye2IcngvzVdJMe?= =?us-ascii?Q?20ioh6pOjy2cLCJxWeermqkmeX2ff3Qk0dHArqtfAQye/VT78G0UB1vvRA9O?= =?us-ascii?Q?LuomIuvxjq796fjaKczsE9hgpGwbmVHXlPmBatSdMVHJkjvMpCdmqNtCzCxA?= =?us-ascii?Q?ycHD3ZhTnSDD6gGjCnVKbY/yyahyi41XOeLQwatVrXpNE7lH4v1HkVw/r1zZ?= =?us-ascii?Q?WwXCUY2bJx7cmly23IfBkJSI97UenrDqvJBna7KaRcWwDYBMekSVsB4xCHCD?= =?us-ascii?Q?lUEQfeVax6cUgfykXYNYQSbzF8CeDT4/MrJhsKzQG2lJ9ZQzXbSWO8aJaX1C?= =?us-ascii?Q?NIgmGVsZeG3rHmAV+3Qf4uGPaYl1U3C+8IHdMZgL2ww8MvB5h1BTuGn/P6lK?= =?us-ascii?Q?CDi3SPkA5oOS59G/pSuHMZlYaT4em4lTdIZ/uNp6m1M8xUktbTk86/QB868r?= =?us-ascii?Q?VYSjbJL7jKC6fnU7WUZtvTq5?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bab008a-2598-48fa-0b15-08d96797c000 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2021 07:12:50.9544 (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: mHS8iMXCv+ZvLw8XUgdgvldxg9x1wz845VLYCjTqiKtpoqMC+QftfEDDQ2mm/kSVdsF48McE/2z1LikflzzuyvCRZrJhvY2NFkglu2KrsY4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5570 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10086 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108250042 X-Proofpoint-ORIG-GUID: JKl_piLK7ELCHZDZQlt9OIpkUSOZRICu X-Proofpoint-GUID: JKl_piLK7ELCHZDZQlt9OIpkUSOZRICu Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org tree: https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git pending head: 036a16a39e2fab9bf7279201d04cf7e90993521f commit: b7ca54b625514464bac2db59b754e95c49b66fb5 [39/40] cxl/core: Split decoder setup into alloc + add config: x86_64-randconfig-m001-20210824 (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 smatch warnings: drivers/cxl/core/bus.c:501 devm_cxl_add_decoder() warn: variable dereferenced before check 'cxld' (see line 497) drivers/cxl/core/bus.c:541 devm_cxl_add_decoder() error: uninitialized symbol 'dev'. vim +/cxld +501 drivers/cxl/core/bus.c b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 494 int devm_cxl_add_decoder(struct device *host, struct cxl_decoder *cxld, 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 495 int *target_map) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 496 { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @497 struct cxl_port *port = to_cxl_port(cxld->dev.parent); ^^^^^^^^^^^^^^^^ Dereference 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 498 struct device *dev; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 499 int rc = 0, i; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 500 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 @501 if (!cxld) ^^^^^ Checked too late. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 502 return -EINVAL; 574d46ed53b527 drivers/cxl/core/bus.c Dan Williams 2021-08-24 503 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 504 if (IS_ERR(cxld)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 505 return PTR_ERR(cxld); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 506 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 507 if (cxld->interleave_ways < 1) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 508 rc = -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 509 goto err; "dev" not initialized at this point. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 510 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 511 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 512 device_lock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 513 if (list_empty(&port->dports)) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 514 rc = -EINVAL; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 515 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 516 for (i = 0; rc == 0 && target_map && i < cxld->nr_targets; i++) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 517 struct cxl_dport *dport = find_dport(port, target_map[i]); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 518 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 519 if (!dport) { b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 520 rc = -ENXIO; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 521 break; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 522 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 523 dev_dbg(host, "%s: target: %d\n", dev_name(dport->dport), i); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 524 cxld->target[i] = dport; b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 525 } b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 526 device_unlock(&port->dev); b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 527 if (rc) b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 528 goto err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 529 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 530 dev = &cxld->dev; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 531 rc = dev_set_name(dev, "decoder%d.%d", port->id, cxld->id); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 532 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 533 goto err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 534 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 535 rc = device_add(dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 536 if (rc) 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 537 goto err; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 538 b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 539 return devm_add_action_or_reset(host, unregister_cxl_dev, dev); 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 540 err: 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 @541 put_device(dev); Should be: put_device(&cxld->dev); But it feels like a layering violation to drop a reference that was aquired by the caller. b7ca54b6255144 drivers/cxl/core/bus.c Dan Williams 2021-08-24 542 return rc; 40ba17afdfabb0 drivers/cxl/core.c Dan Williams 2021-06-09 543 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org