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=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FAKE_REPLY_C,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 9D9DFC11F66 for ; Wed, 14 Jul 2021 08:08:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 87E4061360 for ; Wed, 14 Jul 2021 08:08:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238427AbhGNILR (ORCPT ); Wed, 14 Jul 2021 04:11:17 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:3236 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238343AbhGNILQ (ORCPT ); Wed, 14 Jul 2021 04:11:16 -0400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16E81YoY003626; Wed, 14 Jul 2021 08:08:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : in-reply-to : mime-version; s=corp-2020-01-29; bh=sP+gi1YeQoq5lXNV/bCjjei80BFYJX4fXC5JRtbqkmg=; b=JsHpC6Q30t+O3vryX2WKEjZ7vcvkLWFEnWJX6twieKDvRjL8AQbf7AZwjU3pg6hqJjXo n/TzVER3ZCAS3jVT5sJqBX0lI2RKjYYXJc7nb9LQi6/qMH8IBZYVkCe5+dNgWt38Y77J Uk1C191uYI+CKlqWw6XKJ6peZ86r5g1I/HVbphtBKPAJOa18wtpY1cgIOa4dMgG1ZfXk 0GqDxSqyFU4S7/Weoa/EUQW980bjqKeW5VVeg0Zdwlwm56FAXsTaZFhCR6UapSEVZ4gr 7o2335VBNGeUzMmEJbihHNMXA61AnjF7w2wioRd4BG700237YhA4oQmxa/s3iSNZ8fdN aQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 39sbtuht88-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Jul 2021 08:08:20 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16E80vPT004487; Wed, 14 Jul 2021 08:08:19 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2043.outbound.protection.outlook.com [104.47.51.43]) by aserp3030.oracle.com with ESMTP id 39qycyyrme-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Jul 2021 08:08:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e1qXEkQoHjR53aG0GfFPMLYv5W67Ht2o05TK3h8JQuixxUUrwe88kUmje94qR/9NxfFJ9oDJN+VbT74UPp1pmjR9P8Jrj9aX6rMERIxbocPWJ/qudaSnXJll26pVgqk5dtzQtikOkFiz15ZE6BavI7A+U9HU5G7GYVA2my02EWQHL9HuK9QGTxgUl/uhvk2vozXFHyHbfNBsduVx/nLRZCVO5vKdMXJBPupoaBYAPfTEfBJNjZEctMQ5sqZ9Smgr7JdUsLL4px8wh5P6ZxPf1mPnq1955/XnuYNhxlnGHNeuCYXT3J1QfyKLVi3Ge3cjF183WNh16s9SWenFqrveGg== 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=sP+gi1YeQoq5lXNV/bCjjei80BFYJX4fXC5JRtbqkmg=; b=lRh0O+uewEC32iZtczpdfbpjlK/LuhoE8W44oMzNN6M+dC0x50SZZWCIJimUHR36PIuidPmrYLIOeK3e/z5sD/Pbd1RzP2v1KcLkyBEQtYwAJQ7xVSTkaoTn5ntX3zAaLBMnrrZn3oKhOWvWeQq2QDmAJsR6UB1NvOoU3qN9idUX7TpaqGek1asJWHWV8559Xw6ow+9x4lMh2ofjPYmUQkuhXwXl5hGrM45LZBXYN/Ty7Tbb5LuWxrFN/0AMwyuGvpGKJcGddD7WQHrCoidCZa/1o5NTFJ7LvYAO2Hsb1uzEsuCz9rWNnVkvXRLDhZQXxNVXhHtXFjVXRxgFzV8e8Q== 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=sP+gi1YeQoq5lXNV/bCjjei80BFYJX4fXC5JRtbqkmg=; b=xinXD4I0+5KwgpLFBo/y7Uzxtt8NyZy61zeu2X8+s0AbkJskz1JgTrIDL8zOzXDRT1mIw9HY48t7nzXEj0Ec1R2hDMXa023BDteWtWWRCDcboy7lEJGBoMPyUsX97B9oxekbpsr68wkZugy5dlenpWUD4ZVghtkEA0sp9EyvX58= 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 MWHPR1001MB2397.namprd10.prod.outlook.com (2603:10b6:301:32::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.22; Wed, 14 Jul 2021 08:08:17 +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.4308.027; Wed, 14 Jul 2021 08:08:17 +0000 Date: Wed, 14 Jul 2021 11:07:51 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Andy Shevchenko , linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Cc: lkp@intel.com, kbuild-all@lists.01.org, Greg Kroah-Hartman , Jiri Slaby , Andy Shevchenko Subject: Re: [PATCH v1 1/4] serial: 8250_pci: Refactor the loop in pci_ite887x_init() Message-ID: <202107140052.28NaY2ZC-lkp@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210713104026.58560-1-andriy.shevchenko@linux.intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JNAP275CA0008.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::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 JNAP275CA0008.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.21 via Frontend Transport; Wed, 14 Jul 2021 08:08:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e3b561ba-3a92-4ab2-9de4-08d9469e88f1 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2397: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DkLARr+gGtVJUzpPl+9b/rojAoLS4ChpQeAH/qqf/bD4ODM5YUmf6tBLG0SyVd8jsqgjZz0/xA7Zy4SfZAM/cVCTMlvLjfYV08EByIzILp2t421d4/yJUU8X3mcMsK9vqGbaYtJodTI2SBkG9gFznCSbJKXr61H6xeQpTiP7sw7rIpJ3OZSh4JWB952QVhGhublv/9sYpQUjojnutsm2Pi7jPKF41kTg+z0hV3aAWjVDY5qIGRo694m5Y7vOqYjCdjKFjEjBlUJGVDSbkhz8nKicFXW3f6TrqAFXWLKtLpLxDN8KSZT2Eh0uVpIw3fi6PlYjLSibfSx3W4/1GviEcR8zrZtit18VIr6Zg7Qc2pXactlFfrfQFOqhlUukWhPSlypnxbObG6d5eei9bJ4GROgDbg3bcJE15t2nQCAuABXg9uaw/h2SkUCnM6oadpCifJ8ciXOrQGR4zrXVzfzwSfMCfEQ3poPEDcpCRn9PKwN+dmWaIEmEvtewgSUEvMbMl1mVR3al6B/sAQU6gp7w0zexKTA/DnqWaQW3XgqQgqsKXYyMiiytySdyrGMn6txYLuKsHPXUTOT5U2SYcFJK2m458hzWJ953QMgvVcmsi8V0L5kacCiShndlZ7xikBjQS6kGcTlsnYHcX361mrk+YX28jzHTGaO9gNkijOOY8jSlAhPc5toPnuCScr7/4cSiygAiD6/R3tNwK0iSmbWwXcrYXkufXo9PQZIEEXqVKBOnnUwZAeVaJacqGvj8vYU42mXWd6qiK5J5aCfnGN9UbOFrrz4JKgnHRGorbR+qLqRidHuojpcVq+nZSDTnv04k1WVNm+a4qWx8wTevX3NOXg== 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)(136003)(396003)(376002)(86362001)(83380400001)(38100700002)(38350700002)(36756003)(478600001)(966005)(6666004)(52116002)(6496006)(4326008)(8936002)(956004)(8676002)(44832011)(26005)(186003)(66556008)(66476007)(1076003)(54906003)(66946007)(9686003)(2906002)(6486002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tO9uPvIUhtJk+Me8Fw18WpK19tzbwoL7WVDf7wdTsRyoBNGVt1fEVmSMaawR?= =?us-ascii?Q?DXuaxRnJaQDADMEknyu3PfpQX+gkLFD6zzonaxdct9Or3CtPE5rtovMaFbIV?= =?us-ascii?Q?eiQpxpTSP6gUa4Fh74AoZwG3O0tQqK+NdO7UNSzRaUgfB5GlH2FeJSJtwAVE?= =?us-ascii?Q?hFfmV2IO/EIRqqmKhaIFqeB1kefVUEuWf5c/fAGonNyqL/ApDFYJFnNnKrra?= =?us-ascii?Q?IZTl4hDtlZqM6lJ2AMVKpSD9jHHwKv9Vf4XsHCLW+vf/2uOxYMSIdJLafYEz?= =?us-ascii?Q?lcqjW2IrFnTvkHDWnMYQUp4zUjAUnRcx/i63t6rvZ8rfitYMJRQ/SOC9/dix?= =?us-ascii?Q?K9DFTsOfCgGCb2eNNrEgIhyVQXEW/ioSwk+1W6C/BBAU011+nmD81+R9iHNk?= =?us-ascii?Q?cs6W1tbdAW6RUWM2mvc2AEAsVUeXL1A9aT9WO+9RTVpeWNY8ytJ7spe2uuNX?= =?us-ascii?Q?jeQU5a0gUFWJF3EUCxzlK/S7o8kZVFh5Oda8E/j3uer7pbMEjd93ytfQb3m2?= =?us-ascii?Q?CAK8fDbrw5kWX012qI53EweUl544VVFZxkkbaLCuNxe4pjVRCC+A8RIag8ux?= =?us-ascii?Q?4FZ4E6HIRjAouTGS1FKPjReXhu2H9EAaSNDxU+2Q6eAthZw1I6fTM+qcLark?= =?us-ascii?Q?MCDa+zEGxO9Hr/BYG3mmgmusER1Kxfb1Aq36WEu4r71usEIYM51+9DEqqJfR?= =?us-ascii?Q?ztHzI1l6NnHZVmPJtv6MrQBwpJ2iN+si7dN+g8IxFcDLMxw8TUUMTnEnb6pS?= =?us-ascii?Q?HplMrHAc0V/TxTcXJmrb7m1Lpvw9redFVXxn0CNaQuBH4m6wfWi4ZBp4L89U?= =?us-ascii?Q?O+K0QvZdexzf/Og5wrNevw4WftuY1GBVF7N8g/TeCDZ1VM6pnzt5+0PZ47yc?= =?us-ascii?Q?q5/BNN2zWAgKkvWG26CLjf7ruEv3DFve2r9nKaRA3f4BNmVz/UiMWTSSeYpw?= =?us-ascii?Q?D47XPn/yS4UilnuX4Xs6rcwL0sOhoG+wBaM0w6TyVZCFwRTYSh2q2//67Mcz?= =?us-ascii?Q?xLOe/2uB58KfBUgJ5DsqoDOgWzYU5pH1ezz8kq9Q+5y2K4Zo/IZBORi+xP1H?= =?us-ascii?Q?/onnkyEJkLOIcuECpNwgeEVdj4mhqMs0y+HB5OptPjHMtQ2izNusN4zansDY?= =?us-ascii?Q?Hw7McICQ9kfXUDU/JFK894B3/eslhenWwf5v9X/vpQ8JbJgVrDtgdB8u1+G9?= =?us-ascii?Q?mEo9JTXEwhYj66wDZ8AMT+1v+uoMla6iaR6zCTalTiVj1wkA9nDlJYSZOGRv?= =?us-ascii?Q?arM+zDlXA715Bb85bfmvfA0fIwVlXjVvDJC+Dc4lbn5HdCAvHOhxnVojg4Jo?= =?us-ascii?Q?C0ST2p/SYzKg5cr497XcwiyG?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3b561ba-3a92-4ab2-9de4-08d9469e88f1 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2021 08:08:17.1335 (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: Xc4J9IDutgUeYmBrco1Di3fHKH5GP15Xjkr5DvYy2T4ebxXVahZNZ7eDqgpb/hlg8ElVnaCyczbd5roq5s3enGq6t/DaV4CK7LsMDcdiEcY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2397 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10044 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 bulkscore=0 mlxscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107140051 X-Proofpoint-GUID: 4H5Oy5Wlydt-xfagvqpIN9UnqHo1yKqT X-Proofpoint-ORIG-GUID: 4H5Oy5Wlydt-xfagvqpIN9UnqHo1yKqT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andy, url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/serial-8250_pci-Refactor-the-loop-in-pci_ite887x_init/20210713-184225 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing config: x86_64-randconfig-m001-20210713 (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/tty/serial/8250/8250_pci.c:927 pci_ite887x_init() error: buffer overflow 'inta_addr' 7 <= 7 (assuming for loop doesn't break) vim +927 drivers/tty/serial/8250/8250_pci.c 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-07-13 901 static const short inta_addr[] = { 0x2a0, 0x2c0, 0x220, 0x240, 0x1e0, 0x200, 0x280, }; f79abb828e1d85 drivers/serial/8250_pci.c Ralf Baechle 2007-08-30 902 static int pci_ite887x_init(struct pci_dev *dev) 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 903 { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 904 int ret, i, type; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 905 struct resource *iobase = NULL; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 906 u32 miscr, uartbar, ioport; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 907 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 908 /* search for the base-ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-07-13 909 for (i = 0; i < ARRAY_SIZE(inta_addr); i++) { ^^^^^^^^^^^^^^^^^^^^^^^^^ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-07-13 910 iobase = request_region(inta_addr[i], ITE_887x_IOSIZE, "ite887x"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 911 if (iobase != NULL) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 912 /* write POSIO0R - speed | size | ioport */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 913 pci_write_config_dword(dev, ITE_887x_POSIO0, 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 914 ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 915 ITE_887x_POSIO_IOSIZE_32 | inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 916 /* write INTCBAR - ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-07-13 917 pci_write_config_dword(dev, ITE_887x_INTCBAR, inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 918 ret = inb(inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 919 if (ret != 0xff) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 920 /* ioport connected */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 921 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 922 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 923 release_region(iobase->start, ITE_887x_IOSIZE); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 924 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 925 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 926 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 @927 if (!inta_addr[i]) { Should this be changed to if (i == ARRAY_SIZE(inta_addr)) {? af8c5b8debb046 drivers/tty/serial/8250/8250_pci.c Greg Kroah-Hartman 2013-09-28 928 dev_err(&dev->dev, "ite887x: could not find iobase\n"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 929 return -ENODEV; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 930 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-08-22 931 --- 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="===============9131235836260551988==" MIME-Version: 1.0 From: kernel test robot Subject: Re: [PATCH v1 1/4] serial: 8250_pci: Refactor the loop in pci_ite887x_init() Date: Wed, 14 Jul 2021 01:02:51 +0800 Message-ID: <202107140052.28NaY2ZC-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============9131235836260551988== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org In-Reply-To: <20210713104026.58560-1-andriy.shevchenko@linux.intel.com> References: <20210713104026.58560-1-andriy.shevchenko@linux.intel.com> TO: Andy Shevchenko TO: linux-serial(a)vger.kernel.org TO: linux-kernel(a)vger.kernel.org CC: "Greg Kroah-Hartman" CC: Jiri Slaby CC: Andy Shevchenko Hi Andy, I love your patch! Perhaps something to improve: [auto build test WARNING on tty/tty-testing] [also build test WARNING on linux/master usb/usb-testing linus/master v5.14= -rc1 next-20210713] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/serial-825= 0_pci-Refactor-the-loop-in-pci_ite887x_init/20210713-184225 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-= testing :::::: branch date: 6 hours ago :::::: commit date: 6 hours ago config: x86_64-randconfig-m001-20210713 (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/tty/serial/8250/8250_pci.c:927 pci_ite887x_init() error: buffer ove= rflow 'inta_addr' 7 <=3D 7 (assuming for loop doesn't break) vim +927 drivers/tty/serial/8250/8250_pci.c 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 899 = 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 900 /* inta_addr are the configuration addresses of the ITE */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 901 static const short inta_addr[] =3D { 0x2a0, 0x2c0, 0x220, 0x240,= 0x1e0, 0x200, 0x280, }; f79abb828e1d85 drivers/serial/8250_pci.c Ralf Baechle 2007-0= 8-30 902 static int pci_ite887x_init(struct pci_dev *dev) 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 903 { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 904 int ret, i, type; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 905 struct resource *iobase =3D NULL; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 906 u32 miscr, uartbar, ioport; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 907 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 908 /* search for the base-ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 909 for (i =3D 0; i < ARRAY_SIZE(inta_addr); i++) { 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 910 iobase =3D request_region(inta_addr[i], ITE_887x_IOSIZE, "ite8= 87x"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 911 if (iobase !=3D NULL) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 912 /* write POSIO0R - speed | size | ioport */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 913 pci_write_config_dword(dev, ITE_887x_POSIO0, 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 914 ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 915 ITE_887x_POSIO_IOSIZE_32 | inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 916 /* write INTCBAR - ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 917 pci_write_config_dword(dev, ITE_887x_INTCBAR, inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 918 ret =3D inb(inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 919 if (ret !=3D 0xff) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 920 /* ioport connected */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 921 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 922 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 923 release_region(iobase->start, ITE_887x_IOSIZE); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 924 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 925 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 926 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 @927 if (!inta_addr[i]) { af8c5b8debb046 drivers/tty/serial/8250/8250_pci.c Greg Kroah-Hartman 2013-0= 9-28 928 dev_err(&dev->dev, "ite887x: could not find iobase\n"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 929 return -ENODEV; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 930 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 931 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 932 /* start of undocumented type checking (see parport_pc.c) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 933 type =3D inb(iobase->start + 0x18) & 0x0f; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 934 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 935 switch (type) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 936 case 0x2: /* ITE8871 (1P) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 937 case 0xa: /* ITE8875 (1P) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 938 ret =3D 0; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 939 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 940 case 0xe: /* ITE8872 (2S1P) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 941 ret =3D 2; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 942 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 943 case 0x6: /* ITE8873 (1S) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 944 ret =3D 1; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 945 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 946 case 0x8: /* ITE8874 (2S) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 947 ret =3D 2; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 948 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 949 default: 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 950 moan_device("Unknown ITE887x", dev); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 951 ret =3D -ENODEV; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 952 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 953 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 954 /* configure all serial ports */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 955 for (i =3D 0; i < ret; i++) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 956 /* read the I/O port from the device */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 957 pci_read_config_dword(dev, ITE_887x_PS0BAR + (0x4 * (i + 1)), 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 958 &ioport); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 959 ioport &=3D 0x0000FF00; /* the actual base address */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 960 pci_write_config_dword(dev, ITE_887x_POSIO0 + (0x4 * (i + 1)), 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 961 ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 962 ITE_887x_POSIO_IOSIZE_8 | ioport); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 963 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 964 /* write the ioport to the UARTBAR */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 965 pci_read_config_dword(dev, ITE_887x_UARTBAR, &uartbar); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 966 uartbar &=3D ~(0xffff << (16 * i)); /* clear half the reg */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 967 uartbar |=3D (ioport << (16 * i)); /* set the ioport */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 968 pci_write_config_dword(dev, ITE_887x_UARTBAR, uartbar); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 969 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 970 /* get current config */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 971 pci_read_config_dword(dev, ITE_887x_MISCR, &miscr); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 972 /* disable interrupts (UARTx_Routing[3:0]) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 973 miscr &=3D ~(0xf << (12 - 4 * i)); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 974 /* activate the UART (UARTx_En) */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 975 miscr |=3D 1 << (23 - i); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 976 /* write new config with activated UART */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 977 pci_write_config_dword(dev, ITE_887x_MISCR, miscr); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 978 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 979 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 980 if (ret <=3D 0) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 981 /* the device has no UARTs if we get here */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 982 release_region(iobase->start, ITE_887x_IOSIZE); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 983 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 984 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 985 return ret; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 986 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 987 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============9131235836260551988== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 ojLkg6JHLhxeQSrWjq6zakU5/Q/VpZQ++QkDAA== --===============9131235836260551988==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5809339839293911134==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: Re: [PATCH v1 1/4] serial: 8250_pci: Refactor the loop in pci_ite887x_init() Date: Wed, 14 Jul 2021 11:07:51 +0300 Message-ID: <202107140052.28NaY2ZC-lkp@intel.com> In-Reply-To: <20210713104026.58560-1-andriy.shevchenko@linux.intel.com> List-Id: --===============5809339839293911134== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Andy, url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/serial-825= 0_pci-Refactor-the-loop-in-pci_ite887x_init/20210713-184225 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-= testing config: x86_64-randconfig-m001-20210713 (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/tty/serial/8250/8250_pci.c:927 pci_ite887x_init() error: buffer ove= rflow 'inta_addr' 7 <=3D 7 (assuming for loop doesn't break) vim +927 drivers/tty/serial/8250/8250_pci.c 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 901 static const short inta_addr[] =3D { 0x2a0, 0x2c0, 0x220, 0x240,= 0x1e0, 0x200, 0x280, }; f79abb828e1d85 drivers/serial/8250_pci.c Ralf Baechle 2007-0= 8-30 902 static int pci_ite887x_init(struct pci_dev *dev) 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 903 { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 904 int ret, i, type; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 905 struct resource *iobase =3D NULL; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 906 u32 miscr, uartbar, ioport; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 907 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 908 /* search for the base-ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 909 for (i =3D 0; i < ARRAY_SIZE(inta_addr); i++) { = ^^^^^^^^^^^^^^^^^^^^^^^^^ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 910 iobase =3D request_region(inta_addr[i], ITE_887x_IOSIZE, "ite8= 87x"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 911 if (iobase !=3D NULL) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 912 /* write POSIO0R - speed | size | ioport */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 913 pci_write_config_dword(dev, ITE_887x_POSIO0, 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 914 ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 915 ITE_887x_POSIO_IOSIZE_32 | inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 916 /* write INTCBAR - ioport */ 97f2398f0f6a89 drivers/tty/serial/8250/8250_pci.c Andy Shevchenko 2021-0= 7-13 917 pci_write_config_dword(dev, ITE_887x_INTCBAR, inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 918 ret =3D inb(inta_addr[i]); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 919 if (ret !=3D 0xff) { 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 920 /* ioport connected */ 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 921 break; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 922 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 923 release_region(iobase->start, ITE_887x_IOSIZE); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 924 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 925 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 926 = 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 @927 if (!inta_addr[i]) { Should this be changed to if (i =3D=3D ARRAY_SIZE(inta_addr)) {? af8c5b8debb046 drivers/tty/serial/8250/8250_pci.c Greg Kroah-Hartman 2013-0= 9-28 928 dev_err(&dev->dev, "ite887x: could not find iobase\n"); 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 929 return -ENODEV; 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 930 } 84f8c6fc0e3b6e drivers/serial/8250_pci.c Niels de Vos 2007-0= 8-22 931 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5809339839293911134==--