RE: [PATCH V4] Export ACPI _DSM provided firmware instance number and string name to sysfs

Shyam_Iyer
2011-03-10T22:06:09Z

> -----Original Message-----
> From: K, Narendra
> Sent: Monday, March 07, 2011 3:56 PM
> To: Greg KH
> Cc: a.beregalov@gmail.com; linux-next@vger.kernel.org;
> jbarnes@virtuousgeek.org; linux-pci@vger.kernel.org; linux-
> hotplug@vger.kernel.org; netdev@vger.kernel.org; mjg@redhat.com;
> Domsch, Matt; Rose, Charles; Hargrave, Jordan; Iyer, Shyam;
> sfr@canb.auug.org.au
> Subject: Re: [PATCH V4] Export ACPI _DSM provided firmware instance
> number and string name to sysfs
>
> On Tue, Mar 08, 2011 at 01:26:16AM +0530, Greg KH wrote:
> > On Mon, Mar 07, 2011 at 11:44:52AM -0800, Narendra_K@Dell.com wrote:
> > > --- a/drivers/pci/pci-label.c
> > > +++ b/drivers/pci/pci-label.c
> > > @@ -29,7 +29,9 @@
> > > #include <linux/nls.h>
> > > #include <linux/acpi.h>
> > > #include <linux/pci-acpi.h>
> > > +#ifdef CONFIG_ACPI
> > > #include <acpi/acpi_drivers.h>
> > > +#endif
> >
> > You should never need a #ifdef in a .c file for an include file. If
> so,
> > something is really wrong.
>
> I agree. Also, i realized that the include was not required to address
> the
> reported error. Please find the revised patch here.
>
> From: Narendra K <narendra_k@dell.com>
> Subject: [PATCH] Fix compilation error when CONFIG_ACPI is unset
>
> This patch fixes compilation error descibed below introduced by
> the commit 6058989bad05b82e78baacce69ec14f27a11b5fd
>
> drivers/pci/pci-label.c: In function ‘pci_create_firmware_label_files’:
> drivers/pci/pci-label.c:366:2: error: implicit declaration of function
> ‘device_has_dsm’
>
> Signed-off-by: Narendra K <narendra_k@dell.com>
> ---
> drivers/pci/pci-label.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
> index 824e247..8c80138 100644
> --- a/drivers/pci/pci-label.c
> +++ b/drivers/pci/pci-label.c
> @@ -174,6 +174,12 @@ pci_remove_acpi_index_label_files(struct pci_dev
> *pdev)
> return -1;
> }
>
> +static inline bool
> +device_has_dsm(struct device *dev)
> +{
> + return false;
> +}
> +
> #else
>
> static const char device_label_dsm_uuid[] = {
> --
> 1.7.3.1
>
> With regards,
> Narendra K

So this works and fixes the additional build failure.

I tested with CONFIG_ACPI set/unset and with "make allmodconfig"

Additionally I found that including acpi/apci_drivers.h is not necessary and introduces these warnings..

The below patch fixes the additional warnigs..

In file included from drivers/pci/pci-label.c:32:
include/acpi/acpi_drivers.h:103: warning: ‘struct acpi_device’ declared inside parameter list
include/acpi/acpi_drivers.h:103: warning: its scope is only this definition or declaration, which is probably not what you want
include/acpi/acpi_drivers.h:107: warning: ‘struct acpi_pci_root’ declared inside parameter list

Signed-off-by: Shyam Iyer <shyam_iyer@dell.com>
---
drivers/pci/pci-label.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/pci-label.c b/drivers/pci/pci-label.c
index bf4ebee..488b0ce 100644
--- a/drivers/pci/pci-label.c
+++ b/drivers/pci/pci-label.c
@@ -29,7 +29,6 @@
#include <linux/nls.h>
#include <linux/acpi.h>
#include <linux/pci-acpi.h>
-#include <acpi/acpi_drivers.h>
#include <acpi/acpi_bus.h>
#include "pci.h"

--
1.7.1