Re: [patch] pci: type may be unused in pci_access_init()

From: David Rientjes
Date: Mon Apr 30 2007 - 22:46:45 EST


On Mon, 30 Apr 2007, Andrew Morton wrote:

> On Mon, 30 Apr 2007 07:34:52 -0700 (PDT) David Rientjes <rientjes@xxxxxxxxxx> wrote:
>
> > The automatic 'type' variable is unused in !CONFIG_PCI_DIRECT and
> > !CONFIG_PCI_MMCONFIG.
> >
> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxx>
> > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
> > ---
> > arch/i386/pci/init.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c
> > --- a/arch/i386/pci/init.c
> > +++ b/arch/i386/pci/init.c
> > @@ -6,7 +6,7 @@
>
> Please use `diff -p'.
>

The patch would have appeared the same, pci_access_init() is the first
function (and there are no prototypes) in arch/i386/pci/init.c and at line
6 it had not yet begun.

diff -rupN a/init.c b/init.c
--- a/init.c 2007-04-30 19:28:59.887833000 -0700
+++ b/init.c 2007-04-30 19:29:26.615993000 -0700
@@ -6,7 +6,7 @@
in the right sequence from here. */
static __init int pci_access_init(void)
{
- int type = 0;
+ int type __attribute__((unused)) = 0;

#ifdef CONFIG_PCI_DIRECT
type = pci_direct_probe();


> > #ifdef CONFIG_PCI_DIRECT
> > type = pci_direct_probe();
>
> Of course, one could do
>
> int type = pci_direct_probe();
>
> here instead, but that's a bit fragile.
>

No, because 'type' can be referenced in the !CONFIG_PCI_DIRECT and
CONFIG_PCI_MMCONFIG case:

static __init int pci_access_init(void)
{
int type = 0;

#ifdef CONFIG_PCI_DIRECT
type = pci_direct_probe();
#endif
#ifdef CONFIG_PCI_MMCONFIG
pci_mmcfg_init(type);
#endif

...

So, due to the whacky implementation of __attribute_used__, we can just do
this:
---
arch/i386/pci/init.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c
index b21b6da..508d6fd 100644
--- a/arch/i386/pci/init.c
+++ b/arch/i386/pci/init.c
@@ -6,7 +6,9 @@
in the right sequence from here. */
static __init int pci_access_init(void)
{
+#if defined(CONFIG_PCI_DIRECT) || defined(CONFIG_PCI_MMCONFIG)
int type = 0;
+#endif

#ifdef CONFIG_PCI_DIRECT
type = pci_direct_probe();
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/