Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Greg Kroah-Hartman
On Wed, Aug 15, 2012 at 01:30:46PM -0300, Henrique de Moraes Holschuh wrote:
> On Wed, 15 Aug 2012, Greg Kroah-Hartman wrote:
> > On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
> > > I believe the patch bellow, which was required on 3.2, will also be
> > > necessary.
> > 
> > Will it be necessary to apply this before this patch goes in the series,
> > or after it?
> 
> Applying after fixes a build error.  Applying before might avoid the build
> error altogether (error happens when #undef CONFIG_SMP), AFAIK.

Ok, it doesn't apply directly, but looks easy enough to fix up by hand,
I'll go work on that right now...

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Henrique de Moraes Holschuh
On Wed, 15 Aug 2012, Greg Kroah-Hartman wrote:
> On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
> > I believe the patch bellow, which was required on 3.2, will also be
> > necessary.
> 
> Will it be necessary to apply this before this patch goes in the series,
> or after it?

Applying after fixes a build error.  Applying before might avoid the build
error altogether (error happens when #undef CONFIG_SMP), AFAIK.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Greg Kroah-Hartman
On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
> I believe the patch bellow, which was required on 3.2, will also be
> necessary.

Will it be necessary to apply this before this patch goes in the series,
or after it?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Greg Kroah-Hartman
On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
 I believe the patch bellow, which was required on 3.2, will also be
 necessary.

Will it be necessary to apply this before this patch goes in the series,
or after it?

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Henrique de Moraes Holschuh
On Wed, 15 Aug 2012, Greg Kroah-Hartman wrote:
 On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
  I believe the patch bellow, which was required on 3.2, will also be
  necessary.
 
 Will it be necessary to apply this before this patch goes in the series,
 or after it?

Applying after fixes a build error.  Applying before might avoid the build
error altogether (error happens when #undef CONFIG_SMP), AFAIK.

-- 
  One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie. -- The Silicon Valley Tarot
  Henrique Holschuh
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-15 Thread Greg Kroah-Hartman
On Wed, Aug 15, 2012 at 01:30:46PM -0300, Henrique de Moraes Holschuh wrote:
 On Wed, 15 Aug 2012, Greg Kroah-Hartman wrote:
  On Tue, Aug 14, 2012 at 09:26:54PM -0300, Henrique de Moraes Holschuh wrote:
   I believe the patch bellow, which was required on 3.2, will also be
   necessary.
  
  Will it be necessary to apply this before this patch goes in the series,
  or after it?
 
 Applying after fixes a build error.  Applying before might avoid the build
 error altogether (error happens when #undef CONFIG_SMP), AFAIK.

Ok, it doesn't apply directly, but looks easy enough to fix up by hand,
I'll go work on that right now...

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-14 Thread Henrique de Moraes Holschuh
I believe the patch bellow, which was required on 3.2, will also be
necessary.

From: Kevin Winchester 
Subject: [PATCH] x86: Simplify code by removing a !SMP #ifdefs from 'struct
 cpuinfo_x86'

commit 141168c36cdee3ff23d9c7700b0edc47cb65479f and
commit 3f806e50981825fa56a7f1938f24c0680816be45 upstream.

Several fields in struct cpuinfo_x86 were not defined for the
!SMP case, likely to save space.  However, those fields still
have some meaning for UP, and keeping them allows some #ifdef
removal from other files.  The additional size of the UP kernel
from this change is not significant enough to worry about
keeping up the distinction:

   textdata bss dec hex filename
4737168  506459  972040 6215667  5ed7f3 vmlinux.o.before
4737444  506459  972040 6215943  5ed907 vmlinux.o.after

for a difference of 276 bytes for an example UP config.

If someone wants those 276 bytes back badly then it should
be implemented in a cleaner way.

Signed-off-by: Kevin Winchester 
Cc: Steffen Persvold 
Link: 
http://lkml.kernel.org/r/1324428742-12498-1-git-send-email-kjwinches...@gmail.com
Signed-off-by: Ingo Molnar 
Signed-off-by: Borislav Petkov 
Signed-off-by: Ben Hutchings 
---
 arch/x86/include/asm/processor.h |2 --
 arch/x86/kernel/amd_nb.c |8 ++--
 arch/x86/kernel/cpu/amd.c|2 --
 arch/x86/kernel/cpu/common.c |5 -
 arch/x86/kernel/cpu/intel.c  |2 --
 arch/x86/kernel/cpu/mcheck/mce.c |2 --
 arch/x86/kernel/cpu/mcheck/mce_amd.c |5 +
 arch/x86/kernel/cpu/proc.c   |4 +---
 drivers/edac/sb_edac.c   |2 --
 drivers/hwmon/coretemp.c |7 +++
 10 files changed, 7 insertions(+), 32 deletions(-)

diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index bb3ee36..f7c89e2 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -99,7 +99,6 @@ struct cpuinfo_x86 {
u16 apicid;
u16 initial_apicid;
u16 x86_clflush_size;
-#ifdef CONFIG_SMP
/* number of cores as seen by the OS: */
u16 booted_cores;
/* Physical processor id: */
@@ -110,7 +109,6 @@ struct cpuinfo_x86 {
u8  compute_unit_id;
/* Index into per_cpu list: */
u16 cpu_index;
-#endif
u32 microcode;
 } __attribute__((__aligned__(SMP_CACHE_BYTES)));
 
diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
index bae1efe..be16854 100644
--- a/arch/x86/kernel/amd_nb.c
+++ b/arch/x86/kernel/amd_nb.c
@@ -154,16 +154,14 @@ int amd_get_subcaches(int cpu)
 {
struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link;
unsigned int mask;
-   int cuid = 0;
+   int cuid;
 
if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
return 0;
 
pci_read_config_dword(link, 0x1d4, );
 
-#ifdef CONFIG_SMP
cuid = cpu_data(cpu).compute_unit_id;
-#endif
return (mask >> (4 * cuid)) & 0xf;
 }
 
@@ -172,7 +170,7 @@ int amd_set_subcaches(int cpu, int mask)
static unsigned int reset, ban;
struct amd_northbridge *nb = node_to_amd_nb(amd_get_nb_id(cpu));
unsigned int reg;
-   int cuid = 0;
+   int cuid;
 
if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING) || mask > 0xf)
return -EINVAL;
@@ -190,9 +188,7 @@ int amd_set_subcaches(int cpu, int mask)
pci_write_config_dword(nb->misc, 0x1b8, reg & ~0x18);
}
 
-#ifdef CONFIG_SMP
cuid = cpu_data(cpu).compute_unit_id;
-#endif
mask <<= 4 * cuid;
mask |= (0xf ^ (1 << cuid)) << 26;
 
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 3524e1f..ff8557e 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -148,7 +148,6 @@ static void __cpuinit init_amd_k6(struct cpuinfo_x86 *c)
 
 static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c)
 {
-#ifdef CONFIG_SMP
/* calling is from identify_secondary_cpu() ? */
if (!c->cpu_index)
return;
@@ -192,7 +191,6 @@ static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 
*c)
 
 valid_k7:
;
-#endif
 }
 
 static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index aa003b1..ca93cc7 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -676,9 +676,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
if (this_cpu->c_early_init)
this_cpu->c_early_init(c);
 
-#ifdef CONFIG_SMP
c->cpu_index = 0;
-#endif
filter_cpuid_features(c, false);
 
setup_smep(c);
@@ -764,10 +762,7 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 
*c)
c->apicid = 

Re: [ 36/44] x86, microcode: Sanitize per-cpu microcode reloading interface

2012-08-14 Thread Henrique de Moraes Holschuh
I believe the patch bellow, which was required on 3.2, will also be
necessary.

From: Kevin Winchester kjwinches...@gmail.com
Subject: [PATCH] x86: Simplify code by removing a !SMP #ifdefs from 'struct
 cpuinfo_x86'

commit 141168c36cdee3ff23d9c7700b0edc47cb65479f and
commit 3f806e50981825fa56a7f1938f24c0680816be45 upstream.

Several fields in struct cpuinfo_x86 were not defined for the
!SMP case, likely to save space.  However, those fields still
have some meaning for UP, and keeping them allows some #ifdef
removal from other files.  The additional size of the UP kernel
from this change is not significant enough to worry about
keeping up the distinction:

   textdata bss dec hex filename
4737168  506459  972040 6215667  5ed7f3 vmlinux.o.before
4737444  506459  972040 6215943  5ed907 vmlinux.o.after

for a difference of 276 bytes for an example UP config.

If someone wants those 276 bytes back badly then it should
be implemented in a cleaner way.

Signed-off-by: Kevin Winchester kjwinches...@gmail.com
Cc: Steffen Persvold s...@numascale.com
Link: 
http://lkml.kernel.org/r/1324428742-12498-1-git-send-email-kjwinches...@gmail.com
Signed-off-by: Ingo Molnar mi...@elte.hu
Signed-off-by: Borislav Petkov borislav.pet...@amd.com
Signed-off-by: Ben Hutchings b...@decadent.org.uk
---
 arch/x86/include/asm/processor.h |2 --
 arch/x86/kernel/amd_nb.c |8 ++--
 arch/x86/kernel/cpu/amd.c|2 --
 arch/x86/kernel/cpu/common.c |5 -
 arch/x86/kernel/cpu/intel.c  |2 --
 arch/x86/kernel/cpu/mcheck/mce.c |2 --
 arch/x86/kernel/cpu/mcheck/mce_amd.c |5 +
 arch/x86/kernel/cpu/proc.c   |4 +---
 drivers/edac/sb_edac.c   |2 --
 drivers/hwmon/coretemp.c |7 +++
 10 files changed, 7 insertions(+), 32 deletions(-)

diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index bb3ee36..f7c89e2 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -99,7 +99,6 @@ struct cpuinfo_x86 {
u16 apicid;
u16 initial_apicid;
u16 x86_clflush_size;
-#ifdef CONFIG_SMP
/* number of cores as seen by the OS: */
u16 booted_cores;
/* Physical processor id: */
@@ -110,7 +109,6 @@ struct cpuinfo_x86 {
u8  compute_unit_id;
/* Index into per_cpu list: */
u16 cpu_index;
-#endif
u32 microcode;
 } __attribute__((__aligned__(SMP_CACHE_BYTES)));
 
diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
index bae1efe..be16854 100644
--- a/arch/x86/kernel/amd_nb.c
+++ b/arch/x86/kernel/amd_nb.c
@@ -154,16 +154,14 @@ int amd_get_subcaches(int cpu)
 {
struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))-link;
unsigned int mask;
-   int cuid = 0;
+   int cuid;
 
if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
return 0;
 
pci_read_config_dword(link, 0x1d4, mask);
 
-#ifdef CONFIG_SMP
cuid = cpu_data(cpu).compute_unit_id;
-#endif
return (mask  (4 * cuid))  0xf;
 }
 
@@ -172,7 +170,7 @@ int amd_set_subcaches(int cpu, int mask)
static unsigned int reset, ban;
struct amd_northbridge *nb = node_to_amd_nb(amd_get_nb_id(cpu));
unsigned int reg;
-   int cuid = 0;
+   int cuid;
 
if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING) || mask  0xf)
return -EINVAL;
@@ -190,9 +188,7 @@ int amd_set_subcaches(int cpu, int mask)
pci_write_config_dword(nb-misc, 0x1b8, reg  ~0x18);
}
 
-#ifdef CONFIG_SMP
cuid = cpu_data(cpu).compute_unit_id;
-#endif
mask = 4 * cuid;
mask |= (0xf ^ (1  cuid))  26;
 
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 3524e1f..ff8557e 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -148,7 +148,6 @@ static void __cpuinit init_amd_k6(struct cpuinfo_x86 *c)
 
 static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c)
 {
-#ifdef CONFIG_SMP
/* calling is from identify_secondary_cpu() ? */
if (!c-cpu_index)
return;
@@ -192,7 +191,6 @@ static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 
*c)
 
 valid_k7:
;
-#endif
 }
 
 static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index aa003b1..ca93cc7 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -676,9 +676,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
if (this_cpu-c_early_init)
this_cpu-c_early_init(c);
 
-#ifdef CONFIG_SMP
c-cpu_index = 0;
-#endif
filter_cpuid_features(c, false);
 
setup_smep(c);
@@ -764,10 +762,7 @@