From patchwork Tue Oct 3 10:20:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartlomiej Zolnierkiewicz X-Patchwork-Id: 820835 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y5w6273djz9t50 for ; Tue, 3 Oct 2017 21:20:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751359AbdJCKUl (ORCPT ); Tue, 3 Oct 2017 06:20:41 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:49640 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751277AbdJCKUk (ORCPT ); Tue, 3 Oct 2017 06:20:40 -0400 Received: from epcas2p1.samsung.com (unknown [182.195.41.53]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20171003102038epoutp036e7db02655a4fe8af71a52a558264c31~qCDKJaw2C1810718107epoutp031; Tue, 3 Oct 2017 10:20:38 +0000 (GMT) Received: from epsmges2p1.samsung.com (unknown [182.195.42.69]) by epcas2p2.samsung.com (KnoxPortal) with ESMTP id 20171003102038epcas2p26be1bc5ccd5da1a5db5f5a75385ba58f~qCDKDNA001544515445epcas2p2A; Tue, 3 Oct 2017 10:20:38 +0000 (GMT) Received: from epcas2p3.samsung.com ( [182.195.41.55]) by epsmges2p1.samsung.com (Symantec Messaging Gateway) with SMTP id 48.57.04232.67463D95; Tue, 3 Oct 2017 19:20:38 +0900 (KST) Received: from epsmgms2p2new.samsung.com (unknown [182.195.42.143]) by epcas2p1.samsung.com (KnoxPortal) with ESMTP id 20171003102037epcas2p1ed603f6c3a335ac34438ce32b5421a00~qCDJGlvaU2480524805epcas2p1Y; Tue, 3 Oct 2017 10:20:37 +0000 (GMT) X-AuditID: b6c32a45-d23ff70000001088-da-59d3647629c6 Received: from epmmp1.local.host ( [203.254.227.16]) by epsmgms2p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 84.F5.06856.57463D95; Tue, 3 Oct 2017 19:20:37 +0900 (KST) Received: from amdc3058.localnet ([106.120.53.102]) by mmp1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OX800ESZSQCZ7B0@mmp1.samsung.com>; Tue, 03 Oct 2017 19:20:37 +0900 (KST) From: Bartlomiej Zolnierkiewicz To: "David S. Miller" Cc: Guenter Roeck , Lorenzo Pieralisi , Bjorn Helgaas , Richard Henderson , Ivan Kokshaysky , Matt Turner , linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] ide: add missing hwif->portdev freeing on hwif_init() failure Date: Tue, 03 Oct 2017 12:20:35 +0200 Message-id: <8525531.3RXZi23kEJ@amdc3058> User-Agent: KMail/4.13.3 (Linux/3.13.0-96-generic; KDE/4.13.3; x86_64; ; ) MIME-version: 1.0 Content-transfer-encoding: 7Bit Content-type: text/plain; charset="us-ascii" X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphleLIzCtJLcpLzFFi42LZdljTXLcs5XKkwbc7ghZLmjIs5pxvYbH4 d2ojs8WxHY+YLC7vmsNm8WThGSaLN79fsFt8un2Q2WLaqTusDpwea+atYfTYsvImk8fOWXfZ PRZsKvX4fzbKY+f3BnaPvukfmD0+b5IL4IjisklJzcksSy3St0vgylg/6T9TwTLJio7+66wN jCvEuhg5OSQETCTuX/7D1sXIxSEksINRYuevjWwgCSGB74wS8yaWwRRNWbeGEaJoN6PEg1/T WCGcr4wSbfMmsYJUsQlYSUxsX8UIYosIaEusO9ADVsQssI5J4sD+30AJDg5hgQCJg3+qQWpY BFQldvS2gPXyCmhKbOs5ygJiiwp4SWzZ184EEReU+DH5HlicWUBeYt/+qawQto7E2WPrwC6S EDjCJrHpBESDhICLxLP7N6FsYYlXx7ewQ9jSEs9WbWSEsKczSmz/LQHRvJlRYtXuCVBF1hKH j1+E2sAn0XH4LzvI0RICvBIdbUIQJR4SE76sY4QIO0ps6/WChFasxJ8NnSwTGGVmITl7FpKz ZyE5ewEj8ypGsdSC4tz01GKjAkO94sTc4tK8dL3k/NxNjOC0oeW6g3HGOZ9DjAIcjEo8vDs8 LkUKsSaWFVfmHmKU4GBWEuGd5nU5Uog3JbGyKrUoP76oNCe1+BCjNAeLkjhv/bZrEUIC6Ykl qdmpqQWpRTBZJg5OqQbGy4p3hWs+rMm8bDPn9Y0bvJ+sVYyPe7bmy8Sovlu0k6l0vg5DAXfW xD2XlldwbpwswCW3OPJzslPPQvkKjWlcZ74W/2VSjIqorvMMXlxZX5XEfXT+35K0qTsKZMPb 1j4O7/kUcelb74Fn7j65s08pmIv8CHH9oKTw2ptbZp1x4Z5ug/kF982VWIozEg21mIuKEwG2 IFQgFwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMLMWRmVeSWpSXmKPExsVy+t9jAd3SlMuRBnumClksacqwmHO+hcXi 36mNzBbHdjxisri8aw6bxZOFZ5gs3vx+wW7x6fZBZotpp+6wOnB6rJm3htFjy8qbTB47Z91l 91iwqdTj/9koj53fG9g9+qZ/YPb4vEkugCOKyyYlNSezLLVI3y6BK2P9pP9MBcskKzr6r7M2 MK4Q62Lk5JAQMJGYsm4NYxcjF4eQwE5GiSVvXrFDOF8ZJd5P2s4CUsUmYCUxsX0VI4gtIqAt se5ADytIEbPAOiaJ7dPaWUESwgJ+Et/+fAErYhFQldjR2wIW5xXQlNjWcxRskKiAl8SWfe1M EHFBiR+T74HFmQXkJfbtn8oKYWtJrN95nGkCI+8sJGWzkJTNQlK2gJF5FaNkakFxbnpusVGB UV5quV5xYm5xaV66XnJ+7iZGYFBvO6zVv4Px8ZL4Q4wCHIxKPLw7PC5FCrEmlhVX5h5ilOBg VhLhneZ1OVKINyWxsiq1KD++qDQntfgQozQHi5I4L3/+sUghgfTEktTs1NSC1CKYLBMHp1QD oxG/VHp16jvVdxW+vh9jZ8Xs/eLZsdSYx6WRs/O9iZd+8K3N7Ncf9X280cD+Z+qD5zO3bf0d 9Ny53VDZ+/h5j1Odm19kmy+++IZ3+eYyVwd9/sV6BUvjv540c+n5yNx5fsFUrs1lpvHZHw6/ iMvkS9GK1V8jUV6pZ3RWWD7OQcx+8p4z9UEJSizFGYmGWsxFxYkAVl1lgmYCAAA= X-CMS-MailID: 20171003102037epcas2p1ed603f6c3a335ac34438ce32b5421a00 X-Msg-Generator: CA X-Sender-IP: 182.195.42.143 X-Local-Sender: =?utf-8?q?Bartlomiej_Zolnierkiewicz=1BSRPOL-Kernel_=28TP?= =?utf-8?b?KRvsgrzshLHsoITsnpAbU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVy?= X-Global-Sender: =?utf-8?q?Bartlomiej_Zolnierkiewicz=1BSRPOL-Kernel_=28TP?= =?utf-8?q?=29=1BSamsung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 102P X-CMS-RootMailID: 20171003102037epcas2p1ed603f6c3a335ac34438ce32b5421a00 X-RootMTR: 20171003102037epcas2p1ed603f6c3a335ac34438ce32b5421a00 References: Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Recent pci_assing_irq() changes uncovered a problem with missing freeing of ide_port class instance on hwif_init() failure in ide_host_register(): ide0: disabled, no IRQ ide0: failed to initialize IDE interface ide0: disabling port cmd64x 0000:00:02.0: IDE controller (0x1095:0x0646 rev 0x07) CMD64x_IDE 0000:00:02.0: BAR 0: can't reserve [io 0x8050-0x8057] cmd64x 0000:00:02.0: can't reserve resources CMD64x_IDE: probe of 0000:00:02.0 failed with error -16 ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x94/0xd0 sysfs: cannot create duplicate filename '/class/ide_port/ide0' ... Trace: [] __warn+0x160/0x190 [] sysfs_warn_dup+0x94/0xd0 [] warn_slowpath_fmt+0x58/0x70 [] sysfs_warn_dup+0x94/0xd0 [] kernfs_path_from_node+0x30/0x60 [] kernfs_put+0x16c/0x2c0 [] kernfs_put+0x16c/0x2c0 [] sysfs_do_create_link_sd.isra.2+0x100/0x120 [] device_add+0x2a4/0x7c0 [] device_create_groups_vargs+0x14c/0x170 [] device_create_groups_vargs+0x98/0x170 [] device_create+0x50/0x70 [] ide_host_register+0x48c/0xa00 [] ide_host_register+0x450/0xa00 [] device_register+0x20/0x50 [] ide_host_register+0x450/0xa00 [] ide_host_add+0x64/0xe0 [] kobject_uevent_env+0x16c/0x710 [] do_one_initcall+0x68/0x260 [] kernel_init+0x1c/0x1a0 [] kernel_init+0x0/0x1a0 [] ret_from_kernel_thread+0x18/0x20 [] kernel_init+0x0/0x1a0 ---[ end trace 24a70433c3e4d374 ]--- ide0: disabling port Fix the problem by adding missing code to ide_host_register(). Link: http://lkml.kernel.org/r/32ec730f-c1b0-5584-cd35-f8a809122b96@roeck-us.net Reported-by: Guenter Roeck Cc: Bjorn Helgaas Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Guenter Roeck Cc: Matt Turner Signed-off-by: Bartlomiej Zolnierkiewicz --- This should fix sysfs warning and probing of ide_generic driver driven ports in case of hwif_init() failure (i.e. no IRQ issue when pci_assing_irq() fix is not present). drivers/ide/ide-probe.c | 1 + 1 file changed, 1 insertion(+) -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: b/drivers/ide/ide-probe.c =================================================================== --- a/drivers/ide/ide-probe.c 2017-10-02 15:08:16.658662459 +0200 +++ b/drivers/ide/ide-probe.c 2017-10-03 11:59:36.867189557 +0200 @@ -1451,6 +1451,7 @@ int ide_host_register(struct ide_host *h if (hwif_init(hwif) == 0) { printk(KERN_INFO "%s: failed to initialize IDE " "interface\n", hwif->name); + device_unregister(hwif->portdev); device_unregister(&hwif->gendev); ide_disable_port(hwif); continue;