Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754786Ab3DQQmg (ORCPT ); Wed, 17 Apr 2013 12:42:36 -0400 Received: from mail-oa0-f45.google.com ([209.85.219.45]:39434 "EHLO mail-oa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753828Ab3DQQme (ORCPT ); Wed, 17 Apr 2013 12:42:34 -0400 MIME-Version: 1.0 In-Reply-To: References: <1366196798-15929-1-git-send-email-artem.savkov@gmail.com> From: Bjorn Helgaas Date: Wed, 17 Apr 2013 10:42:12 -0600 Message-ID: Subject: Re: [PATCH] PCI: pci_bus_add_device() should succeed even if creating sysfs files fails To: Artem Savkov Cc: "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Li Zhong , linux-next list , Yinghai Lu Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1796 Lines: 41 On Wed, Apr 17, 2013 at 9:54 AM, Bjorn Helgaas wrote: > On Wed, Apr 17, 2013 at 5:06 AM, Artem Savkov wrote: >> Introduced in cc8f7f9e4e79a0940af6b4b6fdfbcf18a03aa9f4 >> ("PCI: Fix __must_check annotation on pci_create_sysfs_dev_files()") >> >> pci_bus_add_device() should not fail to add device if >> pci_create_sysfs_dev_files() call fails, as sysfs files are not critical. >> >> pci_sysfs_init() is a "late_initcall" and is called after acpi_init, so >> pci_bus_add_device() fails to create devices during boot resulting in a >> bug during acpi_init. It is safe not to create sysfs_dev_files in >> pci_bus_add_device() as they are later created in pci_sysfs_ini(). >> ... > Sorry for the breakage. Thanks for the report, analysis, and fix. > I'll fix this up It's not clear to me what the best fix is, so I just dropped my original patch. It's clearly wrong to have __must_check on the pci_create_sysfs_dev_files() definition, because it doesn't do anything there. We could simply drop the __must_check altogether, as you suggest, but I'd rather structure things to avoid the failure in the first place rather than ignoring an error. It would be ideal if we could get rid of the pci_sysfs_init() late_initcall and just make the pci_create_sysfs_dev_files() from pci_bus_add_device() work all the time, even at boot-time. I didn't look hard enough to figure out why this needs to be a late_initcall. In any case, we can figure this out later, after we merge the current stuff for v3.10. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/