aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/amd_nb.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/amd_nb.c')
-rw-r--r--arch/x86/kernel/amd_nb.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
index 29fa475ec518..a147e676fc7b 100644
--- a/arch/x86/kernel/amd_nb.c
+++ b/arch/x86/kernel/amd_nb.c
@@ -170,15 +170,13 @@ int amd_get_subcaches(int cpu)
170{ 170{
171 struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link; 171 struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link;
172 unsigned int mask; 172 unsigned int mask;
173 int cuid;
174 173
175 if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING)) 174 if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
176 return 0; 175 return 0;
177 176
178 pci_read_config_dword(link, 0x1d4, &mask); 177 pci_read_config_dword(link, 0x1d4, &mask);
179 178
180 cuid = cpu_data(cpu).compute_unit_id; 179 return (mask >> (4 * cpu_data(cpu).cpu_core_id)) & 0xf;
181 return (mask >> (4 * cuid)) & 0xf;
182} 180}
183 181
184int amd_set_subcaches(int cpu, unsigned long mask) 182int amd_set_subcaches(int cpu, unsigned long mask)
@@ -204,7 +202,7 @@ int amd_set_subcaches(int cpu, unsigned long mask)
204 pci_write_config_dword(nb->misc, 0x1b8, reg & ~0x180000); 202 pci_write_config_dword(nb->misc, 0x1b8, reg & ~0x180000);
205 } 203 }
206 204
207 cuid = cpu_data(cpu).compute_unit_id; 205 cuid = cpu_data(cpu).cpu_core_id;
208 mask <<= 4 * cuid; 206 mask <<= 4 * cuid;
209 mask |= (0xf ^ (1 << cuid)) << 26; 207 mask |= (0xf ^ (1 << cuid)) << 26;
210 208