* [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB @ 2009-04-14 16:45 Jaswinder Singh Rajput 2009-04-14 16:52 ` Ingo Molnar 0 siblings, 1 reply; 5+ messages in thread From: Jaswinder Singh Rajput @ 2009-04-14 16:45 UTC (permalink / raw) To: Ingo Molnar, x86 maintainers, Andreas Herrmann, LKML, Mark Langsdorf Add reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. So fixes compiler warnings: arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> --- arch/x86/include/asm/k8.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h index c23b3d1..c81e4ee 100644 --- a/arch/x86/include/asm/k8.h +++ b/arch/x86/include/asm/k8.h @@ -16,7 +16,7 @@ extern int k8_scan_nodes(unsigned long start, unsigned long end); #define node_to_k8_nb_misc(node) \ (node < num_k8_northbridges) ? k8_northbridges[node] : NULL #else -#define node_to_k8_nb_misc(node) NULL +#define node_to_k8_nb_misc(node) (node) ? NULL : NULL #endif -- 1.6.0.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB 2009-04-14 16:45 [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB Jaswinder Singh Rajput @ 2009-04-14 16:52 ` Ingo Molnar 2009-04-14 17:07 ` Jaswinder Singh Rajput 0 siblings, 1 reply; 5+ messages in thread From: Ingo Molnar @ 2009-04-14 16:52 UTC (permalink / raw) To: Jaswinder Singh Rajput Cc: x86 maintainers, Andreas Herrmann, LKML, Mark Langsdorf * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote: > Add reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. > > So fixes compiler warnings: > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: > arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: > arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ > > Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> > --- > arch/x86/include/asm/k8.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h > index c23b3d1..c81e4ee 100644 > --- a/arch/x86/include/asm/k8.h > +++ b/arch/x86/include/asm/k8.h > @@ -16,7 +16,7 @@ extern int k8_scan_nodes(unsigned long start, unsigned long end); > #define node_to_k8_nb_misc(node) \ > (node < num_k8_northbridges) ? k8_northbridges[node] : NULL > #else > -#define node_to_k8_nb_misc(node) NULL > +#define node_to_k8_nb_misc(node) (node) ? NULL : NULL > #endif Ugh, that's very ugly. I gave you a proper solution: >> The typical way to solve this is to add a dummy: >> >> (void)(cpu) >> >> use to the 'cpu' parameter to the macro definition - or, >> (which is a much better solution), to convert it to an >> inline function. Ingo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB 2009-04-14 16:52 ` Ingo Molnar @ 2009-04-14 17:07 ` Jaswinder Singh Rajput 2009-04-14 17:17 ` Ingo Molnar 0 siblings, 1 reply; 5+ messages in thread From: Jaswinder Singh Rajput @ 2009-04-14 17:07 UTC (permalink / raw) To: Ingo Molnar; +Cc: x86 maintainers, Andreas Herrmann, LKML, Mark Langsdorf On Tue, 2009-04-14 at 18:52 +0200, Ingo Molnar wrote: > * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote: > > > Add reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. > > > > So fixes compiler warnings: > > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: > > arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ > > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: > > arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ > > > > Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> > > --- > > arch/x86/include/asm/k8.h | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h > > index c23b3d1..c81e4ee 100644 > > --- a/arch/x86/include/asm/k8.h > > +++ b/arch/x86/include/asm/k8.h > > @@ -16,7 +16,7 @@ extern int k8_scan_nodes(unsigned long start, unsigned long end); > > #define node_to_k8_nb_misc(node) \ > > (node < num_k8_northbridges) ? k8_northbridges[node] : NULL > > #else > > -#define node_to_k8_nb_misc(node) NULL > > +#define node_to_k8_nb_misc(node) (node) ? NULL : NULL > > #endif > > Ugh, that's very ugly. I gave you a proper solution: > > >> The typical way to solve this is to add a dummy: > >> > >> (void)(cpu) > >> > >> use to the 'cpu' parameter to the macro definition - or, > >> (which is a much better solution), to convert it to an > >> inline function. > Subject: [PATCH] x86: cpu/cacheinfo.c reference to node for node_to_k8_nb_misc for !CONFIG_K8_NB Add reference to node for node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. And fixes: arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> --- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c index 789efe2..4414c92 100644 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c @@ -719,6 +719,7 @@ static ssize_t show_cache_disable(struct _cpuid4_info *this_leaf, char *buf, if (!dev) return -EINVAL; + (void)(node); pci_read_config_dword(dev, 0x1BC + index * 4, ®); return sprintf(buf, "%x\n", reg); } @@ -755,6 +756,7 @@ static ssize_t store_cache_disable(struct _cpuid4_info *this_leaf, val |= 0xc0000000; + (void)(node); pci_read_config_dword(dev, 0x58, &scrubber); scrubber &= ~0x1f000000; pci_write_config_dword(dev, 0x58, scrubber); -- 1.6.0.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB 2009-04-14 17:07 ` Jaswinder Singh Rajput @ 2009-04-14 17:17 ` Ingo Molnar 2009-04-14 17:34 ` Jaswinder Singh Rajput 0 siblings, 1 reply; 5+ messages in thread From: Ingo Molnar @ 2009-04-14 17:17 UTC (permalink / raw) To: Jaswinder Singh Rajput Cc: x86 maintainers, Andreas Herrmann, LKML, Mark Langsdorf * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote: > On Tue, 2009-04-14 at 18:52 +0200, Ingo Molnar wrote: > > * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote: > > > > > Add reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. > > > > > > So fixes compiler warnings: > > > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: > > > arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ > > > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: > > > arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ > > > > > > Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> > > > --- > > > arch/x86/include/asm/k8.h | 2 +- > > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > > > diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h > > > index c23b3d1..c81e4ee 100644 > > > --- a/arch/x86/include/asm/k8.h > > > +++ b/arch/x86/include/asm/k8.h > > > @@ -16,7 +16,7 @@ extern int k8_scan_nodes(unsigned long start, unsigned long end); > > > #define node_to_k8_nb_misc(node) \ > > > (node < num_k8_northbridges) ? k8_northbridges[node] : NULL > > > #else > > > -#define node_to_k8_nb_misc(node) NULL > > > +#define node_to_k8_nb_misc(node) (node) ? NULL : NULL > > > #endif > > > > Ugh, that's very ugly. I gave you a proper solution: > > > > >> The typical way to solve this is to add a dummy: > > >> > > >> (void)(cpu) > > >> > > >> use to the 'cpu' parameter to the macro definition - or, > > >> (which is a much better solution), to convert it to an > > >> inline function. > > > > Subject: [PATCH] x86: cpu/cacheinfo.c reference to node for node_to_k8_nb_misc for !CONFIG_K8_NB > > Add reference to node for node_to_k8_nb_misc for !CONFIG_K8_NB to make compiler happy. > > And fixes: > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: > arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ > arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: > arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ > > Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> > --- > arch/x86/kernel/cpu/intel_cacheinfo.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c > index 789efe2..4414c92 100644 > --- a/arch/x86/kernel/cpu/intel_cacheinfo.c > +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c > @@ -719,6 +719,7 @@ static ssize_t show_cache_disable(struct _cpuid4_info *this_leaf, char *buf, > if (!dev) > return -EINVAL; > > + (void)(node); No, we should fix the node_to_k8_nb_misc() primitive. I.e. convert node_to_k8_nb_misc() from a macro to an inline function. Same end result in terms of emitted instructions, but the compiler now knows that 'node' is really used. With a macro the preprocessor hid this fact from the compiler, so the compiler only saw this in essence: int node = 0; struct pci_dev *dev; and thought that 'node' was unused. Hence it emitted a warning. This is one reason why macros are bad - they hide program logic from the compiler. Ingo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB 2009-04-14 17:17 ` Ingo Molnar @ 2009-04-14 17:34 ` Jaswinder Singh Rajput 0 siblings, 0 replies; 5+ messages in thread From: Jaswinder Singh Rajput @ 2009-04-14 17:34 UTC (permalink / raw) To: Ingo Molnar; +Cc: x86 maintainers, Andreas Herrmann, LKML, Mark Langsdorf On Tue, 2009-04-14 at 19:17 +0200, Ingo Molnar wrote: > I.e. convert node_to_k8_nb_misc() from a macro to an inline > function. Same end result in terms of emitted instructions, > but the compiler now knows that 'node' is really used. > > With a macro the preprocessor hid this fact from the > compiler, so the compiler only saw this in essence: > > int node = 0; > struct pci_dev *dev; > > and thought that 'node' was unused. Hence it emitted a > warning. This is one reason why macros are bad - they hide > program logic from the compiler. > Subject: [PATCH] x86: k8 convert node_to_k8_nb_misc() from a macro to an inline function Converting node_to_k8_nb_misc() from a macro to an inline function makes complier happy for !CONFIG_K8_NB so fixes compiler warnings: arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘show_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:712: warning: unused variable ‘node’ arch/x86/kernel/cpu/intel_cacheinfo.c: In function ‘store_cache_disable’: arch/x86/kernel/cpu/intel_cacheinfo.c:739: warning: unused variable ‘node’ Thanks to Ingo for the guidance. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> --- arch/x86/include/asm/k8.h | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h index c23b3d1..c2d1f3b 100644 --- a/arch/x86/include/asm/k8.h +++ b/arch/x86/include/asm/k8.h @@ -13,10 +13,15 @@ extern void k8_flush_garts(void); extern int k8_scan_nodes(unsigned long start, unsigned long end); #ifdef CONFIG_K8_NB -#define node_to_k8_nb_misc(node) \ - (node < num_k8_northbridges) ? k8_northbridges[node] : NULL +static inline struct pci_dev *node_to_k8_nb_misc(int node) +{ + return (node < num_k8_northbridges) ? k8_northbridges[node] : NULL; +} #else -#define node_to_k8_nb_misc(node) NULL +static inline struct pci_dev *node_to_k8_nb_misc(int node) +{ + return NULL; +} #endif -- 1.6.0.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-04-14 17:35 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-04-14 16:45 [PATCH -tip] x86: k8.h reference to node in node_to_k8_nb_misc for !CONFIG_K8_NB Jaswinder Singh Rajput 2009-04-14 16:52 ` Ingo Molnar 2009-04-14 17:07 ` Jaswinder Singh Rajput 2009-04-14 17:17 ` Ingo Molnar 2009-04-14 17:34 ` Jaswinder Singh Rajput
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.