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, URIBL_BLOCKED,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 4B926C433F5 for ; Mon, 13 Sep 2021 14:25:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 36DAE60F25 for ; Mon, 13 Sep 2021 14:25:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345747AbhIMO0s (ORCPT ); Mon, 13 Sep 2021 10:26:48 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:61712 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345877AbhIMOUY (ORCPT ); Mon, 13 Sep 2021 10:20:24 -0400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 18DEFuBa020777; Mon, 13 Sep 2021 14:19:04 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=zjgS2Us4TZ+RMKRrO9CA0Tr8xPKOvhoQaP6OesYcWEQ=; b=NN59X6s6w3amEQDMXcYsdwxaJaoPWz+eNicA+bSe9OtXHX1SxVUb7EpJcklRp6D/ktQT zMGOwp/jQCEo1g5alNDj/lK/CYzfMrBKWDPJgSVzLxeav77kK/CksmcmKqk3pX0rAHpL 7chyGxU0torblgWxHsKwp79kUPEMkuPzvTBHI6ECO5tavftqe0ZqmkmhaoUd1FK3tdHo Ah0TsV0ddaai4OVPJFfmK97h5GKhHv8yQo0ZeXVLjuxamFwqBUK7aTxQCxDlRvXiLBjp GyexdVeQcPuV/gUym4ZCN9wJX6VEqU2RRcB5z7z9nOhxpHGSFKZR0nhMS0u77SY+Askf aA== 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=zjgS2Us4TZ+RMKRrO9CA0Tr8xPKOvhoQaP6OesYcWEQ=; b=MPkv4QIJbBn5bZw215bqIeWvFliHlk+mqOsFV0zZJrH0snZFv7/sH02dUmosDzbImOgy m0ZvWjY3yTX5RtSGJkjzaXBQT831JxZAcHJuf4LAuOV2hNBwGG2N6FRnEvpH/ffi61PM RnWwUhUr96a+Xb+RBCciuswQEn5ewEm9hCV/hfLvdGsRh3+jZ5O+jS4zrxvdzJVNapX1 8EmWX8VQeV5cVqmou+S6vJuj0LVpDXhVD943uf2JKXkUWzTIgrJuEj++kwoDYT1AMkwU PRCPbkYe7Ca2XybAgvzEFgS32fDuOsGPDiR5IBmgfTtaD9OzxV72IhKhumlsaQ1ea4iK Hg== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3b1jkjau1u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Sep 2021 14:19:04 +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 18DEDOH7034885; Mon, 13 Sep 2021 14:19:03 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by userp3020.oracle.com with ESMTP id 3b167qgvc1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Sep 2021 14:19:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ng/ImMN6F7S2umAcrF0Jsi/b1LLw2Z0Rt4X5W8Q59l4+0zg89iboNN/GqMmtOjEaP5sOKVhdluVqd0qEDLu+dxqHEhNNEx29EUynzcXpiWuO0LRg/n6MYGzqlalokVyy7+15VmPQEEvPoeUB0RfP0bq9AYsMOAhIoaDN8WCyo31Zr3sehJdAaN7UWZmVMGj93G7mCCvBlEuGSqPAzdYnwLD+o/egrT3tEaLicvGPX475GNUgOguO6bNOEWYJaN6zLeSQJnxsUV5hkHFnQBSiVjln/8dPCwX+y0t35Lslsp3i1an9CfdLMupBR99T4QkwpZUhvCS+pMEDvyro557Ukw== 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; bh=zjgS2Us4TZ+RMKRrO9CA0Tr8xPKOvhoQaP6OesYcWEQ=; b=Wt8N5yUIQAaA587sN8wsqsfGsr5ZVHv1s2gdD0o9jN2Q5J7DOU/Lku1udaQunhIn28eGto3cOiJ7+IrWLjN7d+jeo90UOZc7sUGxSQB84alUeNId1+ugO37IvjhWL+YUDGpoCIa3i1J0zIsEqScRbtObE3P+XeQZRl8hSVa4NHjgkocb0JGSF7iOfWCDMgDdp1bbBhbGRKLSKVhGrDsZ+4HwJv9AQRCtWtlE2bGV/aITusy2eH1oFY8dnnv+Wp53g2ZcuILqj3Jp6wV3HDJRqT0pDah7DV7DLDqlThntuXWpt6FWxW77n1Zx4FLkJPqv6t/ajVRz1wlvJqwFWtAhCA== 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=zjgS2Us4TZ+RMKRrO9CA0Tr8xPKOvhoQaP6OesYcWEQ=; b=XW9sgUhfLRiFHcxJI4yzhfl41kxswNiKuV82iR1SBmxPo2e71gyN/n1WjGbr+8BrW5loPH/odBL+WLD6ruLBkiAXeb8XsgzOWp8ZX6wxI12zngRy2OG2ohAMStd2jUT1U2CDY3gENyVJA5w30ClZNx8FxsFjFkl69b4jBI369+0= 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 MWHPR10MB1248.namprd10.prod.outlook.com (2603:10b6:301:8::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.16; Mon, 13 Sep 2021 14:19:00 +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.4500.019; Mon, 13 Sep 2021 14:19:00 +0000 Date: Mon, 13 Sep 2021 17:18:46 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Thomas Zimmermann Cc: lkp@intel.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org Subject: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not released on lines: 451. Message-ID: <202109130332.svSr7mtV-lkp@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JNAP275CA0018.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::23) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 Received: from kadam (62.8.83.99) by JNAP275CA0018.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Mon, 13 Sep 2021 14:18:56 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 847374ae-fe1d-4a2b-a039-08d976c16e8a X-MS-TrafficTypeDiagnostic: MWHPR10MB1248: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:305; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vT9O9xL6uxjG6iLE7w/ttWAII6sVCo7Or2y2m6ujXWlEJvYfEgCWppZCKFYjaQHtJcp2frSEjzSLse8joKhybtYIdhJ5WOuQ6yG3iKv2ELO094KgmAeoE/8gWqgKMkwaWhScOpgexFaDcIdWT1tXPKmYOFnqxPkXdrKADzFPmTw+vCWiLAv1OmFJHs9SC+AhuLDlGA5eVy9YuO6mnnsF2fPF2Dspss03a89oW4Faq4kCzagyjM+3IvxUP2c+VfrDyX/FTzPGM3d3V8thEQ0j/xsek5z695g2J41OBmj6MiXvzuT2DS7SVnr7+cWcO9lqEuZN6wptQV2IAUNmF/1jbHSkrkyfm4+UfBerejoMmtg0ArMfhDIfQRcAZ6TOxnxVcxtyHZP8MXU68yjej6du+NoUoYmjmr+fU+ACkNLTmpgs8quccmgn4Jzc3n/fMP+hKBYaZM/2yUdRMyQ3ooDfU72tDEvSni9PGeud9vihWF+i6JcAPpnWLa1XcDYFWCYBNxeY7mN+lWVjmENBxpSaUJSWLlhQoCBpFRf4cQHKmeaLcVBhS1A/JMIuoUH5Cf8Iw9q7P3JOH/GE6pVMJiN7T4YNSSIUIL+dZDagr1dbwF6gTfHdjPo2YF5xAr9EORkZjmaGFv5P8saWDuZO/VbWSVYoY3FwIWxPQ9KgSHusNP9fmhA2YIa+YxUShzzfouTPsIVJuBzU7aA2wA9eXB0dgl1+jLfWXeYX1M/Gpq3nIpzZNP9uup+dZ8L3d6UYf4gUaynbj+qkBEhPnZhFhM3bQoPz1N+R54qme2Biw3PeEr9qeI0CgLUr7iAdZ6S7GYCXyTIPJl7HhVyxq92IbeCE5iLMrnOHYDfJfSfxaoA/GaA= 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)(136003)(376002)(39860400002)(396003)(366004)(38350700002)(66476007)(38100700002)(83380400001)(66556008)(8676002)(4326008)(26005)(6666004)(36756003)(6486002)(86362001)(44832011)(66946007)(9686003)(2906002)(4001150100001)(5660300002)(52116002)(1076003)(966005)(478600001)(316002)(6496006)(8936002)(956004)(186003)(6916009)(70780200001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dqcmI9J/81LmzbOwPEItcDlmMx3eGPCKGdMnUefUKXyBlgmv+dlIcPusw29q?= =?us-ascii?Q?CCk4zPw1Q3e9yCj+GWB2MzBsulVifiGqSnvLL/qcyLHjdqB/keUORutbC8aM?= =?us-ascii?Q?haQzYZROo0yse8o+ETaF2+tQPRevGE8hlFhfq6Roo4cioQS7hKv+IoqUX2fv?= =?us-ascii?Q?tvcCgCe7oli+PJn01DSSWxktRq3OMKMyLcVxqG7k2GG/rj884CbhxtQnKHDF?= =?us-ascii?Q?exUnwlw8SNtz2ZTySpHoSSv90AIOT+RHDjVqIhZgf9Wr2LLo3xL2N5Q8GDGT?= =?us-ascii?Q?lQDEph13iZKDI5GucVLucI8dP6EIvLmhYOol0+EJK29LIFhd+Mn5JSrjFm7m?= =?us-ascii?Q?imMMjrGHc7EUTtEqjiJzziPYX5rn9c/d77lP3C0HjiNiOdXFAR2PBZ2xwpuO?= =?us-ascii?Q?wLWPum+W3WOExMfwtuHdCEYzKmS2hslnEvaAcoC6/4r6hl2Wu4uGSmpdL665?= =?us-ascii?Q?1o1gwqRVwiZFQcrR6HokyBXKcqi2K3zqppFcG80yVcEn3dVpniCt0Y4AVBmw?= =?us-ascii?Q?Oi95laJFI+mlZKLKx/VEwEYWf6jWz3dEcZQ6vc7gJ5CtzezECscd/Kl4ReC3?= =?us-ascii?Q?OHaFsvqOd8p0b/3meW444W2wcXJGD1H2A3J/wi2QSnHtRVRQPaMGCell7DfJ?= =?us-ascii?Q?opDvNy6xuAvnuc61ELNrJM9s44Nfjzs8tMms1hx+gLAYHxrTZ7HwQKwv42tJ?= =?us-ascii?Q?cLEBdD5ueLnofkLGMDBwYIoObq3XYtkUm57uu0ToxjGiUM9sbiTAKKGwjxMH?= =?us-ascii?Q?RFh953fCkgluTGOXTyVFxNwK6G8P3dHqEuWfDa8popie5bjqzvYUs7rH5Qzg?= =?us-ascii?Q?LkggoJLwnmNM7vVF9+bVxLjTdu8upFYt80DAlrxabonmoR0sFGUAW85kwC9d?= =?us-ascii?Q?QqMWBCepbUvvi46MmnvxUy+WWTCqU6dRbADO4beKZOcOq2U6jHd3hpBNND1D?= =?us-ascii?Q?ts5IxybAHRTB8gMwyeVG8OkFkWoqZHMA9cK+pQmR0r1pmmGvniq3cAldG74X?= =?us-ascii?Q?EgSjsCvqrPF3avwvPWYL3QV8QAqDhNWzKn03/GJM975Hm2faD8j5KzswJhL6?= =?us-ascii?Q?GkDW2ZLaiOTM7Kg6v883r9i1xnp61jzlMj2ohA/RqNZIxLgLgsqaRCgRYXOj?= =?us-ascii?Q?DFMXci8SKpkubfcWlew4Bgvz5AMCSwc1nkDbxmuh5U8SVYahQnK4kytLojMW?= =?us-ascii?Q?USPSOvQaR6siD6EBZYNlWk6XJaLPUPLFr2Qf/GkcHGyEsFqwgHCSYcosINUc?= =?us-ascii?Q?j+kWdA7zc5UIfeGXHcG07v0v3imE5lVZgv5YMa7oNjJG6z0vkr8JwNaGAEgk?= =?us-ascii?Q?dBLAvJ5PbxSfs2MIcAceYVx1?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 847374ae-fe1d-4a2b-a039-08d976c16e8a X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2021 14:19:00.6309 (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: stKvfcdCKyaAq1VKsNvmPGXI570EgNuHjBXbd9NrpkxZpWxqXKNthymt++I3NY9urmLpBl1jRZ/F0Jjbgg43i1UDMu2XJxL/5ik8pGfP4gE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1248 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10105 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109030001 definitions=main-2109130095 X-Proofpoint-GUID: 3JKfpEMpRnOdxEyX3QAW9OOqeQyAcnOT X-Proofpoint-ORIG-GUID: 3JKfpEMpRnOdxEyX3QAW9OOqeQyAcnOT 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: 78e709522d2c012cb0daad2e668506637bffb7c2 commit: 5226711e6c413ed069788f1e3f71def9d8d839d6 drm/vc4: Convert to Linux IRQ interfaces config: openrisc-randconfig-m031-20210912 (attached as .config) compiler: or1k-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not released on lines: 451. vim +468 drivers/gpu/drm/vc4/vc4_v3d.c d3f5168a081000 Eric Anholt 2015-03-02 389 static int vc4_v3d_bind(struct device *dev, struct device *master, void *data) d3f5168a081000 Eric Anholt 2015-03-02 390 { d3f5168a081000 Eric Anholt 2015-03-02 391 struct platform_device *pdev = to_platform_device(dev); d3f5168a081000 Eric Anholt 2015-03-02 392 struct drm_device *drm = dev_get_drvdata(master); d3f5168a081000 Eric Anholt 2015-03-02 393 struct vc4_dev *vc4 = to_vc4_dev(drm); d3f5168a081000 Eric Anholt 2015-03-02 394 struct vc4_v3d *v3d = NULL; d5b1a78a772f1e Eric Anholt 2015-11-30 395 int ret; d3f5168a081000 Eric Anholt 2015-03-02 396 d3f5168a081000 Eric Anholt 2015-03-02 397 v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL); d3f5168a081000 Eric Anholt 2015-03-02 398 if (!v3d) d3f5168a081000 Eric Anholt 2015-03-02 399 return -ENOMEM; d3f5168a081000 Eric Anholt 2015-03-02 400 001bdb55d9eb72 Eric Anholt 2016-02-05 401 dev_set_drvdata(dev, v3d); 001bdb55d9eb72 Eric Anholt 2016-02-05 402 d3f5168a081000 Eric Anholt 2015-03-02 403 v3d->pdev = pdev; d3f5168a081000 Eric Anholt 2015-03-02 404 d3f5168a081000 Eric Anholt 2015-03-02 405 v3d->regs = vc4_ioremap_regs(pdev, 0); d3f5168a081000 Eric Anholt 2015-03-02 406 if (IS_ERR(v3d->regs)) d3f5168a081000 Eric Anholt 2015-03-02 407 return PTR_ERR(v3d->regs); 3051719af11eb4 Eric Anholt 2019-02-20 408 v3d->regset.base = v3d->regs; 3051719af11eb4 Eric Anholt 2019-02-20 409 v3d->regset.regs = v3d_regs; 3051719af11eb4 Eric Anholt 2019-02-20 410 v3d->regset.nregs = ARRAY_SIZE(v3d_regs); d3f5168a081000 Eric Anholt 2015-03-02 411 d3f5168a081000 Eric Anholt 2015-03-02 412 vc4->v3d = v3d; 001bdb55d9eb72 Eric Anholt 2016-02-05 413 v3d->vc4 = vc4; d3f5168a081000 Eric Anholt 2015-03-02 414 b72a2816e37114 Eric Anholt 2017-04-28 415 v3d->clk = devm_clk_get(dev, NULL); b72a2816e37114 Eric Anholt 2017-04-28 416 if (IS_ERR(v3d->clk)) { b72a2816e37114 Eric Anholt 2017-04-28 417 int ret = PTR_ERR(v3d->clk); b72a2816e37114 Eric Anholt 2017-04-28 418 b72a2816e37114 Eric Anholt 2017-04-28 419 if (ret == -ENOENT) { b72a2816e37114 Eric Anholt 2017-04-28 420 /* bcm2835 didn't have a clock reference in the DT. */ b72a2816e37114 Eric Anholt 2017-04-28 421 ret = 0; b72a2816e37114 Eric Anholt 2017-04-28 422 v3d->clk = NULL; b72a2816e37114 Eric Anholt 2017-04-28 423 } else { b72a2816e37114 Eric Anholt 2017-04-28 424 if (ret != -EPROBE_DEFER) b72a2816e37114 Eric Anholt 2017-04-28 425 dev_err(dev, "Failed to get V3D clock: %d\n", b72a2816e37114 Eric Anholt 2017-04-28 426 ret); b72a2816e37114 Eric Anholt 2017-04-28 427 return ret; b72a2816e37114 Eric Anholt 2017-04-28 428 } b72a2816e37114 Eric Anholt 2017-04-28 429 } b72a2816e37114 Eric Anholt 2017-04-28 430 d3f5168a081000 Eric Anholt 2015-03-02 431 if (V3D_READ(V3D_IDENT0) != V3D_EXPECTED_IDENT0) { d3f5168a081000 Eric Anholt 2015-03-02 432 DRM_ERROR("V3D_IDENT0 read 0x%08x instead of 0x%08x\n", d3f5168a081000 Eric Anholt 2015-03-02 433 V3D_READ(V3D_IDENT0), V3D_EXPECTED_IDENT0); d3f5168a081000 Eric Anholt 2015-03-02 434 return -EINVAL; d3f5168a081000 Eric Anholt 2015-03-02 435 } d3f5168a081000 Eric Anholt 2015-03-02 436 b72a2816e37114 Eric Anholt 2017-04-28 437 ret = clk_prepare_enable(v3d->clk); Smatch wants a matching unprepare disable for this. b72a2816e37114 Eric Anholt 2017-04-28 438 if (ret != 0) b72a2816e37114 Eric Anholt 2017-04-28 439 return ret; b72a2816e37114 Eric Anholt 2017-04-28 440 d5b1a78a772f1e Eric Anholt 2015-11-30 441 /* Reset the binner overflow address/size at setup, to be sure d5b1a78a772f1e Eric Anholt 2015-11-30 442 * we don't reuse an old one. d5b1a78a772f1e Eric Anholt 2015-11-30 443 */ d5b1a78a772f1e Eric Anholt 2015-11-30 444 V3D_WRITE(V3D_BPOA, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 445 V3D_WRITE(V3D_BPOS, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 446 d3f5168a081000 Eric Anholt 2015-03-02 447 vc4_v3d_init_hw(drm); d3f5168a081000 Eric Anholt 2015-03-02 448 5226711e6c413e Thomas Zimmermann 2021-08-03 449 ret = platform_get_irq(pdev, 0); 5226711e6c413e Thomas Zimmermann 2021-08-03 450 if (ret < 0) 5226711e6c413e Thomas Zimmermann 2021-08-03 451 return ret; Here. 5226711e6c413e Thomas Zimmermann 2021-08-03 452 vc4->irq = ret; 5226711e6c413e Thomas Zimmermann 2021-08-03 453 5226711e6c413e Thomas Zimmermann 2021-08-03 454 ret = vc4_irq_install(drm, vc4->irq); d5b1a78a772f1e Eric Anholt 2015-11-30 455 if (ret) { d5b1a78a772f1e Eric Anholt 2015-11-30 456 DRM_ERROR("Failed to install IRQ handler\n"); d5b1a78a772f1e Eric Anholt 2015-11-30 457 return ret; d5b1a78a772f1e Eric Anholt 2015-11-30 458 } d5b1a78a772f1e Eric Anholt 2015-11-30 459 7f696942a7e52d Eric Anholt 2017-05-15 460 pm_runtime_set_active(dev); 3a62234680d86e Eric Anholt 2016-11-04 461 pm_runtime_use_autosuspend(dev); 3a62234680d86e Eric Anholt 2016-11-04 462 pm_runtime_set_autosuspend_delay(dev, 40); /* a little over 2 frames. */ 001bdb55d9eb72 Eric Anholt 2016-02-05 463 pm_runtime_enable(dev); 001bdb55d9eb72 Eric Anholt 2016-02-05 464 c9be804c8c7a2d Eric Anholt 2019-04-01 465 vc4_debugfs_add_file(drm, "v3d_ident", vc4_v3d_debugfs_ident, NULL); c9be804c8c7a2d Eric Anholt 2019-04-01 466 vc4_debugfs_add_regset32(drm, "v3d_regs", &v3d->regset); c9be804c8c7a2d Eric Anholt 2019-04-01 467 d3f5168a081000 Eric Anholt 2015-03-02 @468 return 0; d3f5168a081000 Eric Anholt 2015-03-02 469 } --- 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="===============3725668399443632347==" MIME-Version: 1.0 From: kernel test robot Subject: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not released on lines: 451. Date: Mon, 13 Sep 2021 03:33:44 +0800 Message-ID: <202109130332.svSr7mtV-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============3725668399443632347== 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: Thomas Zimmermann tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = master head: 78e709522d2c012cb0daad2e668506637bffb7c2 commit: 5226711e6c413ed069788f1e3f71def9d8d839d6 drm/vc4: Convert to Linux = IRQ interfaces date: 5 weeks ago :::::: branch date: 22 hours ago :::::: commit date: 5 weeks ago config: openrisc-randconfig-m031-20210912 (attached as .config) compiler: or1k-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not relea= sed on lines: 451. vim +468 drivers/gpu/drm/vc4/vc4_v3d.c 001bdb55d9eb72 Eric Anholt 2016-02-05 388 = d3f5168a081000 Eric Anholt 2015-03-02 389 static int vc4_v3d_bind(s= truct device *dev, struct device *master, void *data) d3f5168a081000 Eric Anholt 2015-03-02 390 { d3f5168a081000 Eric Anholt 2015-03-02 391 struct platform_device *= pdev =3D to_platform_device(dev); d3f5168a081000 Eric Anholt 2015-03-02 392 struct drm_device *drm = =3D dev_get_drvdata(master); d3f5168a081000 Eric Anholt 2015-03-02 393 struct vc4_dev *vc4 =3D = to_vc4_dev(drm); d3f5168a081000 Eric Anholt 2015-03-02 394 struct vc4_v3d *v3d =3D = NULL; d5b1a78a772f1e Eric Anholt 2015-11-30 395 int ret; d3f5168a081000 Eric Anholt 2015-03-02 396 = d3f5168a081000 Eric Anholt 2015-03-02 397 v3d =3D devm_kzalloc(&pd= ev->dev, sizeof(*v3d), GFP_KERNEL); d3f5168a081000 Eric Anholt 2015-03-02 398 if (!v3d) d3f5168a081000 Eric Anholt 2015-03-02 399 return -ENOMEM; d3f5168a081000 Eric Anholt 2015-03-02 400 = 001bdb55d9eb72 Eric Anholt 2016-02-05 401 dev_set_drvdata(dev, v3d= ); 001bdb55d9eb72 Eric Anholt 2016-02-05 402 = d3f5168a081000 Eric Anholt 2015-03-02 403 v3d->pdev =3D pdev; d3f5168a081000 Eric Anholt 2015-03-02 404 = d3f5168a081000 Eric Anholt 2015-03-02 405 v3d->regs =3D vc4_iorema= p_regs(pdev, 0); d3f5168a081000 Eric Anholt 2015-03-02 406 if (IS_ERR(v3d->regs)) d3f5168a081000 Eric Anholt 2015-03-02 407 return PTR_ERR(v3d->reg= s); 3051719af11eb4 Eric Anholt 2019-02-20 408 v3d->regset.base =3D v3d= ->regs; 3051719af11eb4 Eric Anholt 2019-02-20 409 v3d->regset.regs =3D v3d= _regs; 3051719af11eb4 Eric Anholt 2019-02-20 410 v3d->regset.nregs =3D AR= RAY_SIZE(v3d_regs); d3f5168a081000 Eric Anholt 2015-03-02 411 = d3f5168a081000 Eric Anholt 2015-03-02 412 vc4->v3d =3D v3d; 001bdb55d9eb72 Eric Anholt 2016-02-05 413 v3d->vc4 =3D vc4; d3f5168a081000 Eric Anholt 2015-03-02 414 = b72a2816e37114 Eric Anholt 2017-04-28 415 v3d->clk =3D devm_clk_ge= t(dev, NULL); b72a2816e37114 Eric Anholt 2017-04-28 416 if (IS_ERR(v3d->clk)) { b72a2816e37114 Eric Anholt 2017-04-28 417 int ret =3D PTR_ERR(v3d= ->clk); b72a2816e37114 Eric Anholt 2017-04-28 418 = b72a2816e37114 Eric Anholt 2017-04-28 419 if (ret =3D=3D -ENOENT)= { b72a2816e37114 Eric Anholt 2017-04-28 420 /* bcm2835 didn't have= a clock reference in the DT. */ b72a2816e37114 Eric Anholt 2017-04-28 421 ret =3D 0; b72a2816e37114 Eric Anholt 2017-04-28 422 v3d->clk =3D NULL; b72a2816e37114 Eric Anholt 2017-04-28 423 } else { b72a2816e37114 Eric Anholt 2017-04-28 424 if (ret !=3D -EPROBE_D= EFER) b72a2816e37114 Eric Anholt 2017-04-28 425 dev_err(dev, "Failed = to get V3D clock: %d\n", b72a2816e37114 Eric Anholt 2017-04-28 426 ret); b72a2816e37114 Eric Anholt 2017-04-28 427 return ret; b72a2816e37114 Eric Anholt 2017-04-28 428 } b72a2816e37114 Eric Anholt 2017-04-28 429 } b72a2816e37114 Eric Anholt 2017-04-28 430 = d3f5168a081000 Eric Anholt 2015-03-02 431 if (V3D_READ(V3D_IDENT0)= !=3D V3D_EXPECTED_IDENT0) { d3f5168a081000 Eric Anholt 2015-03-02 432 DRM_ERROR("V3D_IDENT0 r= ead 0x%08x instead of 0x%08x\n", d3f5168a081000 Eric Anholt 2015-03-02 433 V3D_READ(V3D_IDENT0)= , V3D_EXPECTED_IDENT0); d3f5168a081000 Eric Anholt 2015-03-02 434 return -EINVAL; d3f5168a081000 Eric Anholt 2015-03-02 435 } d3f5168a081000 Eric Anholt 2015-03-02 436 = b72a2816e37114 Eric Anholt 2017-04-28 437 ret =3D clk_prepare_enab= le(v3d->clk); b72a2816e37114 Eric Anholt 2017-04-28 438 if (ret !=3D 0) b72a2816e37114 Eric Anholt 2017-04-28 439 return ret; b72a2816e37114 Eric Anholt 2017-04-28 440 = d5b1a78a772f1e Eric Anholt 2015-11-30 441 /* Reset the binner over= flow address/size at setup, to be sure d5b1a78a772f1e Eric Anholt 2015-11-30 442 * we don't reuse an old= one. d5b1a78a772f1e Eric Anholt 2015-11-30 443 */ d5b1a78a772f1e Eric Anholt 2015-11-30 444 V3D_WRITE(V3D_BPOA, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 445 V3D_WRITE(V3D_BPOS, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 446 = d3f5168a081000 Eric Anholt 2015-03-02 447 vc4_v3d_init_hw(drm); d3f5168a081000 Eric Anholt 2015-03-02 448 = 5226711e6c413e Thomas Zimmermann 2021-08-03 449 ret =3D platform_get_irq= (pdev, 0); 5226711e6c413e Thomas Zimmermann 2021-08-03 450 if (ret < 0) 5226711e6c413e Thomas Zimmermann 2021-08-03 451 return ret; 5226711e6c413e Thomas Zimmermann 2021-08-03 452 vc4->irq =3D ret; 5226711e6c413e Thomas Zimmermann 2021-08-03 453 = 5226711e6c413e Thomas Zimmermann 2021-08-03 454 ret =3D vc4_irq_install(= drm, vc4->irq); d5b1a78a772f1e Eric Anholt 2015-11-30 455 if (ret) { d5b1a78a772f1e Eric Anholt 2015-11-30 456 DRM_ERROR("Failed to in= stall IRQ handler\n"); d5b1a78a772f1e Eric Anholt 2015-11-30 457 return ret; d5b1a78a772f1e Eric Anholt 2015-11-30 458 } d5b1a78a772f1e Eric Anholt 2015-11-30 459 = 7f696942a7e52d Eric Anholt 2017-05-15 460 pm_runtime_set_active(de= v); 3a62234680d86e Eric Anholt 2016-11-04 461 pm_runtime_use_autosuspe= nd(dev); 3a62234680d86e Eric Anholt 2016-11-04 462 pm_runtime_set_autosuspe= nd_delay(dev, 40); /* a little over 2 frames. */ 001bdb55d9eb72 Eric Anholt 2016-02-05 463 pm_runtime_enable(dev); 001bdb55d9eb72 Eric Anholt 2016-02-05 464 = c9be804c8c7a2d Eric Anholt 2019-04-01 465 vc4_debugfs_add_file(drm= , "v3d_ident", vc4_v3d_debugfs_ident, NULL); c9be804c8c7a2d Eric Anholt 2019-04-01 466 vc4_debugfs_add_regset32= (drm, "v3d_regs", &v3d->regset); c9be804c8c7a2d Eric Anholt 2019-04-01 467 = d3f5168a081000 Eric Anholt 2015-03-02 @468 return 0; d3f5168a081000 Eric Anholt 2015-03-02 469 } d3f5168a081000 Eric Anholt 2015-03-02 470 = :::::: The code at line 468 was first introduced by commit :::::: d3f5168a0810005920e7a3d5ba83e249bd9a750c drm/vc4: Bind and initializ= e the V3D engine. :::::: TO: Eric Anholt :::::: CC: Eric Anholt --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============3725668399443632347== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============3725668399443632347==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3539259204961681983==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not released on lines: 451. Date: Mon, 13 Sep 2021 17:18:46 +0300 Message-ID: <202109130332.svSr7mtV-lkp@intel.com> List-Id: --===============3539259204961681983== 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: 78e709522d2c012cb0daad2e668506637bffb7c2 commit: 5226711e6c413ed069788f1e3f71def9d8d839d6 drm/vc4: Convert to Linux = IRQ interfaces config: openrisc-randconfig-m031-20210912 (attached as .config) compiler: or1k-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/vc4/vc4_v3d.c:468 vc4_v3d_bind() warn: 'v3d->clk' not relea= sed on lines: 451. vim +468 drivers/gpu/drm/vc4/vc4_v3d.c d3f5168a081000 Eric Anholt 2015-03-02 389 static int vc4_v3d_bind(s= truct device *dev, struct device *master, void *data) d3f5168a081000 Eric Anholt 2015-03-02 390 { d3f5168a081000 Eric Anholt 2015-03-02 391 struct platform_device *= pdev =3D to_platform_device(dev); d3f5168a081000 Eric Anholt 2015-03-02 392 struct drm_device *drm = =3D dev_get_drvdata(master); d3f5168a081000 Eric Anholt 2015-03-02 393 struct vc4_dev *vc4 =3D = to_vc4_dev(drm); d3f5168a081000 Eric Anholt 2015-03-02 394 struct vc4_v3d *v3d =3D = NULL; d5b1a78a772f1e Eric Anholt 2015-11-30 395 int ret; d3f5168a081000 Eric Anholt 2015-03-02 396 = d3f5168a081000 Eric Anholt 2015-03-02 397 v3d =3D devm_kzalloc(&pd= ev->dev, sizeof(*v3d), GFP_KERNEL); d3f5168a081000 Eric Anholt 2015-03-02 398 if (!v3d) d3f5168a081000 Eric Anholt 2015-03-02 399 return -ENOMEM; d3f5168a081000 Eric Anholt 2015-03-02 400 = 001bdb55d9eb72 Eric Anholt 2016-02-05 401 dev_set_drvdata(dev, v3d= ); 001bdb55d9eb72 Eric Anholt 2016-02-05 402 = d3f5168a081000 Eric Anholt 2015-03-02 403 v3d->pdev =3D pdev; d3f5168a081000 Eric Anholt 2015-03-02 404 = d3f5168a081000 Eric Anholt 2015-03-02 405 v3d->regs =3D vc4_iorema= p_regs(pdev, 0); d3f5168a081000 Eric Anholt 2015-03-02 406 if (IS_ERR(v3d->regs)) d3f5168a081000 Eric Anholt 2015-03-02 407 return PTR_ERR(v3d->reg= s); 3051719af11eb4 Eric Anholt 2019-02-20 408 v3d->regset.base =3D v3d= ->regs; 3051719af11eb4 Eric Anholt 2019-02-20 409 v3d->regset.regs =3D v3d= _regs; 3051719af11eb4 Eric Anholt 2019-02-20 410 v3d->regset.nregs =3D AR= RAY_SIZE(v3d_regs); d3f5168a081000 Eric Anholt 2015-03-02 411 = d3f5168a081000 Eric Anholt 2015-03-02 412 vc4->v3d =3D v3d; 001bdb55d9eb72 Eric Anholt 2016-02-05 413 v3d->vc4 =3D vc4; d3f5168a081000 Eric Anholt 2015-03-02 414 = b72a2816e37114 Eric Anholt 2017-04-28 415 v3d->clk =3D devm_clk_ge= t(dev, NULL); b72a2816e37114 Eric Anholt 2017-04-28 416 if (IS_ERR(v3d->clk)) { b72a2816e37114 Eric Anholt 2017-04-28 417 int ret =3D PTR_ERR(v3d= ->clk); b72a2816e37114 Eric Anholt 2017-04-28 418 = b72a2816e37114 Eric Anholt 2017-04-28 419 if (ret =3D=3D -ENOENT)= { b72a2816e37114 Eric Anholt 2017-04-28 420 /* bcm2835 didn't have= a clock reference in the DT. */ b72a2816e37114 Eric Anholt 2017-04-28 421 ret =3D 0; b72a2816e37114 Eric Anholt 2017-04-28 422 v3d->clk =3D NULL; b72a2816e37114 Eric Anholt 2017-04-28 423 } else { b72a2816e37114 Eric Anholt 2017-04-28 424 if (ret !=3D -EPROBE_D= EFER) b72a2816e37114 Eric Anholt 2017-04-28 425 dev_err(dev, "Failed = to get V3D clock: %d\n", b72a2816e37114 Eric Anholt 2017-04-28 426 ret); b72a2816e37114 Eric Anholt 2017-04-28 427 return ret; b72a2816e37114 Eric Anholt 2017-04-28 428 } b72a2816e37114 Eric Anholt 2017-04-28 429 } b72a2816e37114 Eric Anholt 2017-04-28 430 = d3f5168a081000 Eric Anholt 2015-03-02 431 if (V3D_READ(V3D_IDENT0)= !=3D V3D_EXPECTED_IDENT0) { d3f5168a081000 Eric Anholt 2015-03-02 432 DRM_ERROR("V3D_IDENT0 r= ead 0x%08x instead of 0x%08x\n", d3f5168a081000 Eric Anholt 2015-03-02 433 V3D_READ(V3D_IDENT0)= , V3D_EXPECTED_IDENT0); d3f5168a081000 Eric Anholt 2015-03-02 434 return -EINVAL; d3f5168a081000 Eric Anholt 2015-03-02 435 } d3f5168a081000 Eric Anholt 2015-03-02 436 = b72a2816e37114 Eric Anholt 2017-04-28 437 ret =3D clk_prepare_enab= le(v3d->clk); Smatch wants a matching unprepare disable for this. b72a2816e37114 Eric Anholt 2017-04-28 438 if (ret !=3D 0) b72a2816e37114 Eric Anholt 2017-04-28 439 return ret; b72a2816e37114 Eric Anholt 2017-04-28 440 = d5b1a78a772f1e Eric Anholt 2015-11-30 441 /* Reset the binner over= flow address/size at setup, to be sure d5b1a78a772f1e Eric Anholt 2015-11-30 442 * we don't reuse an old= one. d5b1a78a772f1e Eric Anholt 2015-11-30 443 */ d5b1a78a772f1e Eric Anholt 2015-11-30 444 V3D_WRITE(V3D_BPOA, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 445 V3D_WRITE(V3D_BPOS, 0); d5b1a78a772f1e Eric Anholt 2015-11-30 446 = d3f5168a081000 Eric Anholt 2015-03-02 447 vc4_v3d_init_hw(drm); d3f5168a081000 Eric Anholt 2015-03-02 448 = 5226711e6c413e Thomas Zimmermann 2021-08-03 449 ret =3D platform_get_irq= (pdev, 0); 5226711e6c413e Thomas Zimmermann 2021-08-03 450 if (ret < 0) 5226711e6c413e Thomas Zimmermann 2021-08-03 451 return ret; Here. 5226711e6c413e Thomas Zimmermann 2021-08-03 452 vc4->irq =3D ret; 5226711e6c413e Thomas Zimmermann 2021-08-03 453 = 5226711e6c413e Thomas Zimmermann 2021-08-03 454 ret =3D vc4_irq_install(= drm, vc4->irq); d5b1a78a772f1e Eric Anholt 2015-11-30 455 if (ret) { d5b1a78a772f1e Eric Anholt 2015-11-30 456 DRM_ERROR("Failed to in= stall IRQ handler\n"); d5b1a78a772f1e Eric Anholt 2015-11-30 457 return ret; d5b1a78a772f1e Eric Anholt 2015-11-30 458 } d5b1a78a772f1e Eric Anholt 2015-11-30 459 = 7f696942a7e52d Eric Anholt 2017-05-15 460 pm_runtime_set_active(de= v); 3a62234680d86e Eric Anholt 2016-11-04 461 pm_runtime_use_autosuspe= nd(dev); 3a62234680d86e Eric Anholt 2016-11-04 462 pm_runtime_set_autosuspe= nd_delay(dev, 40); /* a little over 2 frames. */ 001bdb55d9eb72 Eric Anholt 2016-02-05 463 pm_runtime_enable(dev); 001bdb55d9eb72 Eric Anholt 2016-02-05 464 = c9be804c8c7a2d Eric Anholt 2019-04-01 465 vc4_debugfs_add_file(drm= , "v3d_ident", vc4_v3d_debugfs_ident, NULL); c9be804c8c7a2d Eric Anholt 2019-04-01 466 vc4_debugfs_add_regset32= (drm, "v3d_regs", &v3d->regset); c9be804c8c7a2d Eric Anholt 2019-04-01 467 = d3f5168a081000 Eric Anholt 2015-03-02 @468 return 0; d3f5168a081000 Eric Anholt 2015-03-02 469 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============3539259204961681983==--