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=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 6F566C04EB9 for ; Wed, 5 Dec 2018 09:39:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 367E820878 for ; Wed, 5 Dec 2018 09:39:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="QULMlWas" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 367E820878 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728539AbeLEJju (ORCPT ); Wed, 5 Dec 2018 04:39:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:44018 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727616AbeLEJjt (ORCPT ); Wed, 5 Dec 2018 04:39:49 -0500 Received: from sasha-vm.mshome.net (unknown [213.57.143.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1933D20851; Wed, 5 Dec 2018 09:39:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544002788; bh=/n7UNaky7BxLd26DHMk6CiDStwxZAIYF7bRuZ4o+k98=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QULMlWasAaTSnANtVPnj3+ja20qbojc5brOv2VN09ujv72lgryh0q1qPs7TqjsvRJ ySuf+9l4497gTl05XlgW/p2ANsdqlkWNKZBTp0xFsj2cJQbPTbkjMlPh5k8qOx/t0R IzPM+rgxTvj0dQQe9YdGIGeRGmMZjizoQQvbEGsw= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Aaro Koskinen , Felipe Balbi , Sasha Levin , linux-usb@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 068/123] USB: omap_udc: use devm_request_irq() Date: Wed, 5 Dec 2018 04:35:00 -0500 Message-Id: <20181205093555.5386-68-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181205093555.5386-1-sashal@kernel.org> References: <20181205093555.5386-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Aaro Koskinen [ Upstream commit 286afdde1640d8ea8916a0f05e811441fbbf4b9d ] The current code fails to release the third irq on the error path (observed by reading the code), and we get also multiple WARNs with failing gadget drivers due to duplicate IRQ releases. Fix by using devm_request_irq(). Signed-off-by: Aaro Koskinen Signed-off-by: Felipe Balbi Signed-off-by: Sasha Levin --- drivers/usb/gadget/udc/omap_udc.c | 37 +++++++++---------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c index 3a16431da321..1c77218c82af 100644 --- a/drivers/usb/gadget/udc/omap_udc.c +++ b/drivers/usb/gadget/udc/omap_udc.c @@ -2867,8 +2867,8 @@ static int omap_udc_probe(struct platform_device *pdev) udc->clr_halt = UDC_RESET_EP; /* USB general purpose IRQ: ep0, state changes, dma, etc */ - status = request_irq(pdev->resource[1].start, omap_udc_irq, - 0, driver_name, udc); + status = devm_request_irq(&pdev->dev, pdev->resource[1].start, + omap_udc_irq, 0, driver_name, udc); if (status != 0) { ERR("can't get irq %d, err %d\n", (int) pdev->resource[1].start, status); @@ -2876,20 +2876,20 @@ static int omap_udc_probe(struct platform_device *pdev) } /* USB "non-iso" IRQ (PIO for all but ep0) */ - status = request_irq(pdev->resource[2].start, omap_udc_pio_irq, - 0, "omap_udc pio", udc); + status = devm_request_irq(&pdev->dev, pdev->resource[2].start, + omap_udc_pio_irq, 0, "omap_udc pio", udc); if (status != 0) { ERR("can't get irq %d, err %d\n", (int) pdev->resource[2].start, status); - goto cleanup2; + goto cleanup1; } #ifdef USE_ISO - status = request_irq(pdev->resource[3].start, omap_udc_iso_irq, - 0, "omap_udc iso", udc); + status = devm_request_irq(&pdev->dev, pdev->resource[3].start, + omap_udc_iso_irq, 0, "omap_udc iso", udc); if (status != 0) { ERR("can't get irq %d, err %d\n", (int) pdev->resource[3].start, status); - goto cleanup3; + goto cleanup1; } #endif if (cpu_is_omap16xx() || cpu_is_omap7xx()) { @@ -2902,22 +2902,11 @@ static int omap_udc_probe(struct platform_device *pdev) create_proc_file(); status = usb_add_gadget_udc_release(&pdev->dev, &udc->gadget, omap_udc_release); - if (status) - goto cleanup4; - - return 0; + if (!status) + return 0; -cleanup4: remove_proc_file(); -#ifdef USE_ISO -cleanup3: - free_irq(pdev->resource[2].start, udc); -#endif - -cleanup2: - free_irq(pdev->resource[1].start, udc); - cleanup1: kfree(udc); udc = NULL; @@ -2961,12 +2950,6 @@ static int omap_udc_remove(struct platform_device *pdev) remove_proc_file(); -#ifdef USE_ISO - free_irq(pdev->resource[3].start, udc); -#endif - free_irq(pdev->resource[2].start, udc); - free_irq(pdev->resource[1].start, udc); - if (udc->dc_clk) { if (udc->clk_requested) omap_udc_enable_clock(0); -- 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [AUTOSEL,4.19,068/123] USB: omap_udc: use devm_request_irq() From: Sasha Levin Message-Id: <20181205093555.5386-68-sashal@kernel.org> Date: Wed, 5 Dec 2018 04:35:00 -0500 To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Aaro Koskinen , Felipe Balbi , Sasha Levin , linux-usb@vger.kernel.org List-ID: RnJvbTogQWFybyBLb3NraW5lbiA8YWFyby5rb3NraW5lbkBpa2kuZmk+CgpbIFVwc3RyZWFtIGNv bW1pdCAyODZhZmRkZTE2NDBkOGVhODkxNmEwZjA1ZTgxMTQ0MWZiYmY0YjlkIF0KClRoZSBjdXJy ZW50IGNvZGUgZmFpbHMgdG8gcmVsZWFzZSB0aGUgdGhpcmQgaXJxIG9uIHRoZSBlcnJvciBwYXRo CihvYnNlcnZlZCBieSByZWFkaW5nIHRoZSBjb2RlKSwgYW5kIHdlIGdldCBhbHNvIG11bHRpcGxl IFdBUk5zIHdpdGgKZmFpbGluZyBnYWRnZXQgZHJpdmVycyBkdWUgdG8gZHVwbGljYXRlIElSUSBy ZWxlYXNlcy4gRml4IGJ5IHVzaW5nCmRldm1fcmVxdWVzdF9pcnEoKS4KClNpZ25lZC1vZmYtYnk6 IEFhcm8gS29za2luZW4gPGFhcm8ua29za2luZW5AaWtpLmZpPgpTaWduZWQtb2ZmLWJ5OiBGZWxp cGUgQmFsYmkgPGZlbGlwZS5iYWxiaUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh c2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL3VzYi9nYWRnZXQvdWRj L29tYXBfdWRjLmMgfCAzNyArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2IvZ2FkZ2V0L3VkYy9vbWFwX3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3Vk Yy9vbWFwX3VkYy5jCmluZGV4IDNhMTY0MzFkYTMyMS4uMWM3NzIxOGM4MmFmIDEwMDY0NAotLS0g YS9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL29tYXBfdWRjLmMKKysrIGIvZHJpdmVycy91c2IvZ2Fk Z2V0L3VkYy9vbWFwX3VkYy5jCkBAIC0yODY3LDggKzI4NjcsOCBAQCBzdGF0aWMgaW50IG9tYXBf dWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXVkYy0+Y2xyX2hhbHQg PSBVRENfUkVTRVRfRVA7CiAKIAkvKiBVU0IgZ2VuZXJhbCBwdXJwb3NlIElSUTogIGVwMCwgc3Rh dGUgY2hhbmdlcywgZG1hLCBldGMgKi8KLQlzdGF0dXMgPSByZXF1ZXN0X2lycShwZGV2LT5yZXNv dXJjZVsxXS5zdGFydCwgb21hcF91ZGNfaXJxLAotCQkJMCwgZHJpdmVyX25hbWUsIHVkYyk7CisJ c3RhdHVzID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBwZGV2LT5yZXNvdXJjZVsxXS5z dGFydCwKKwkJCQkgIG9tYXBfdWRjX2lycSwgMCwgZHJpdmVyX25hbWUsIHVkYyk7CiAJaWYgKHN0 YXR1cyAhPSAwKSB7CiAJCUVSUigiY2FuJ3QgZ2V0IGlycSAlZCwgZXJyICVkXG4iLAogCQkJKGlu dCkgcGRldi0+cmVzb3VyY2VbMV0uc3RhcnQsIHN0YXR1cyk7CkBAIC0yODc2LDIwICsyODc2LDIw IEBAIHN0YXRpYyBpbnQgb21hcF91ZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAl9CiAKIAkvKiBVU0IgIm5vbi1pc28iIElSUSAoUElPIGZvciBhbGwgYnV0IGVwMCkgKi8K LQlzdGF0dXMgPSByZXF1ZXN0X2lycShwZGV2LT5yZXNvdXJjZVsyXS5zdGFydCwgb21hcF91ZGNf cGlvX2lycSwKLQkJCTAsICJvbWFwX3VkYyBwaW8iLCB1ZGMpOworCXN0YXR1cyA9IGRldm1fcmVx dWVzdF9pcnEoJnBkZXYtPmRldiwgcGRldi0+cmVzb3VyY2VbMl0uc3RhcnQsCisJCQkJICBvbWFw X3VkY19waW9faXJxLCAwLCAib21hcF91ZGMgcGlvIiwgdWRjKTsKIAlpZiAoc3RhdHVzICE9IDAp IHsKIAkJRVJSKCJjYW4ndCBnZXQgaXJxICVkLCBlcnIgJWRcbiIsCiAJCQkoaW50KSBwZGV2LT5y ZXNvdXJjZVsyXS5zdGFydCwgc3RhdHVzKTsKLQkJZ290byBjbGVhbnVwMjsKKwkJZ290byBjbGVh bnVwMTsKIAl9CiAjaWZkZWYJVVNFX0lTTwotCXN0YXR1cyA9IHJlcXVlc3RfaXJxKHBkZXYtPnJl c291cmNlWzNdLnN0YXJ0LCBvbWFwX3VkY19pc29faXJxLAotCQkJMCwgIm9tYXBfdWRjIGlzbyIs IHVkYyk7CisJc3RhdHVzID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBwZGV2LT5yZXNv dXJjZVszXS5zdGFydCwKKwkJCQkgIG9tYXBfdWRjX2lzb19pcnEsIDAsICJvbWFwX3VkYyBpc28i LCB1ZGMpOwogCWlmIChzdGF0dXMgIT0gMCkgewogCQlFUlIoImNhbid0IGdldCBpcnEgJWQsIGVy ciAlZFxuIiwKIAkJCShpbnQpIHBkZXYtPnJlc291cmNlWzNdLnN0YXJ0LCBzdGF0dXMpOwotCQln b3RvIGNsZWFudXAzOworCQlnb3RvIGNsZWFudXAxOwogCX0KICNlbmRpZgogCWlmIChjcHVfaXNf b21hcDE2eHgoKSB8fCBjcHVfaXNfb21hcDd4eCgpKSB7CkBAIC0yOTAyLDIyICsyOTAyLDExIEBA IHN0YXRpYyBpbnQgb21hcF91ZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAljcmVhdGVfcHJvY19maWxlKCk7CiAJc3RhdHVzID0gdXNiX2FkZF9nYWRnZXRfdWRjX3JlbGVh c2UoJnBkZXYtPmRldiwgJnVkYy0+Z2FkZ2V0LAogCQkJb21hcF91ZGNfcmVsZWFzZSk7Ci0JaWYg KHN0YXR1cykKLQkJZ290byBjbGVhbnVwNDsKLQotCXJldHVybiAwOworCWlmICghc3RhdHVzKQor CQlyZXR1cm4gMDsKIAotY2xlYW51cDQ6CiAJcmVtb3ZlX3Byb2NfZmlsZSgpOwogCi0jaWZkZWYJ VVNFX0lTTwotY2xlYW51cDM6Ci0JZnJlZV9pcnEocGRldi0+cmVzb3VyY2VbMl0uc3RhcnQsIHVk Yyk7Ci0jZW5kaWYKLQotY2xlYW51cDI6Ci0JZnJlZV9pcnEocGRldi0+cmVzb3VyY2VbMV0uc3Rh cnQsIHVkYyk7Ci0KIGNsZWFudXAxOgogCWtmcmVlKHVkYyk7CiAJdWRjID0gTlVMTDsKQEAgLTI5 NjEsMTIgKzI5NTAsNiBAQCBzdGF0aWMgaW50IG9tYXBfdWRjX3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCiAJcmVtb3ZlX3Byb2NfZmlsZSgpOwogCi0jaWZkZWYJVVNFX0lT TwotCWZyZWVfaXJxKHBkZXYtPnJlc291cmNlWzNdLnN0YXJ0LCB1ZGMpOwotI2VuZGlmCi0JZnJl ZV9pcnEocGRldi0+cmVzb3VyY2VbMl0uc3RhcnQsIHVkYyk7Ci0JZnJlZV9pcnEocGRldi0+cmVz b3VyY2VbMV0uc3RhcnQsIHVkYyk7Ci0KIAlpZiAodWRjLT5kY19jbGspIHsKIAkJaWYgKHVkYy0+ Y2xrX3JlcXVlc3RlZCkKIAkJCW9tYXBfdWRjX2VuYWJsZV9jbG9jaygwKTsK