diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/processor_throttling.c | 10 | ||||
-rw-r--r-- | drivers/firmware/dcdbas.c | 4 | ||||
-rw-r--r-- | drivers/pci/pci-driver.c | 9 |
3 files changed, 13 insertions, 10 deletions
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c index 1b8e592a8241..0bba3a914e86 100644 --- a/drivers/acpi/processor_throttling.c +++ b/drivers/acpi/processor_throttling.c | |||
@@ -838,10 +838,10 @@ static int acpi_processor_get_throttling(struct acpi_processor *pr) | |||
838 | * Migrate task to the cpu pointed by pr. | 838 | * Migrate task to the cpu pointed by pr. |
839 | */ | 839 | */ |
840 | saved_mask = current->cpus_allowed; | 840 | saved_mask = current->cpus_allowed; |
841 | set_cpus_allowed(current, cpumask_of_cpu(pr->id)); | 841 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id)); |
842 | ret = pr->throttling.acpi_processor_get_throttling(pr); | 842 | ret = pr->throttling.acpi_processor_get_throttling(pr); |
843 | /* restore the previous state */ | 843 | /* restore the previous state */ |
844 | set_cpus_allowed(current, saved_mask); | 844 | set_cpus_allowed_ptr(current, &saved_mask); |
845 | 845 | ||
846 | return ret; | 846 | return ret; |
847 | } | 847 | } |
@@ -1025,7 +1025,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1025 | * it can be called only for the cpu pointed by pr. | 1025 | * it can be called only for the cpu pointed by pr. |
1026 | */ | 1026 | */ |
1027 | if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { | 1027 | if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { |
1028 | set_cpus_allowed(current, cpumask_of_cpu(pr->id)); | 1028 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id)); |
1029 | ret = p_throttling->acpi_processor_set_throttling(pr, | 1029 | ret = p_throttling->acpi_processor_set_throttling(pr, |
1030 | t_state.target_state); | 1030 | t_state.target_state); |
1031 | } else { | 1031 | } else { |
@@ -1056,7 +1056,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1056 | continue; | 1056 | continue; |
1057 | } | 1057 | } |
1058 | t_state.cpu = i; | 1058 | t_state.cpu = i; |
1059 | set_cpus_allowed(current, cpumask_of_cpu(i)); | 1059 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(i)); |
1060 | ret = match_pr->throttling. | 1060 | ret = match_pr->throttling. |
1061 | acpi_processor_set_throttling( | 1061 | acpi_processor_set_throttling( |
1062 | match_pr, t_state.target_state); | 1062 | match_pr, t_state.target_state); |
@@ -1074,7 +1074,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state) | |||
1074 | &t_state); | 1074 | &t_state); |
1075 | } | 1075 | } |
1076 | /* restore the previous state */ | 1076 | /* restore the previous state */ |
1077 | set_cpus_allowed(current, saved_mask); | 1077 | set_cpus_allowed_ptr(current, &saved_mask); |
1078 | return ret; | 1078 | return ret; |
1079 | } | 1079 | } |
1080 | 1080 | ||
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c index 1636806ec55e..0ffef3b7c6ca 100644 --- a/drivers/firmware/dcdbas.c +++ b/drivers/firmware/dcdbas.c | |||
@@ -265,7 +265,7 @@ static int smi_request(struct smi_cmd *smi_cmd) | |||
265 | 265 | ||
266 | /* SMI requires CPU 0 */ | 266 | /* SMI requires CPU 0 */ |
267 | old_mask = current->cpus_allowed; | 267 | old_mask = current->cpus_allowed; |
268 | set_cpus_allowed(current, cpumask_of_cpu(0)); | 268 | set_cpus_allowed_ptr(current, &cpumask_of_cpu(0)); |
269 | if (smp_processor_id() != 0) { | 269 | if (smp_processor_id() != 0) { |
270 | dev_dbg(&dcdbas_pdev->dev, "%s: failed to get CPU 0\n", | 270 | dev_dbg(&dcdbas_pdev->dev, "%s: failed to get CPU 0\n", |
271 | __FUNCTION__); | 271 | __FUNCTION__); |
@@ -285,7 +285,7 @@ static int smi_request(struct smi_cmd *smi_cmd) | |||
285 | ); | 285 | ); |
286 | 286 | ||
287 | out: | 287 | out: |
288 | set_cpus_allowed(current, old_mask); | 288 | set_cpus_allowed_ptr(current, &old_mask); |
289 | return ret; | 289 | return ret; |
290 | } | 290 | } |
291 | 291 | ||
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index e571c72e6753..e8d94fafc280 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c | |||
@@ -182,15 +182,18 @@ static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, | |||
182 | struct mempolicy *oldpol; | 182 | struct mempolicy *oldpol; |
183 | cpumask_t oldmask = current->cpus_allowed; | 183 | cpumask_t oldmask = current->cpus_allowed; |
184 | int node = pcibus_to_node(dev->bus); | 184 | int node = pcibus_to_node(dev->bus); |
185 | if (node >= 0 && node_online(node)) | 185 | |
186 | set_cpus_allowed(current, node_to_cpumask(node)); | 186 | if (node >= 0) { |
187 | node_to_cpumask_ptr(nodecpumask, node); | ||
188 | set_cpus_allowed_ptr(current, nodecpumask); | ||
189 | } | ||
187 | /* And set default memory allocation policy */ | 190 | /* And set default memory allocation policy */ |
188 | oldpol = current->mempolicy; | 191 | oldpol = current->mempolicy; |
189 | current->mempolicy = NULL; /* fall back to system default policy */ | 192 | current->mempolicy = NULL; /* fall back to system default policy */ |
190 | #endif | 193 | #endif |
191 | error = drv->probe(dev, id); | 194 | error = drv->probe(dev, id); |
192 | #ifdef CONFIG_NUMA | 195 | #ifdef CONFIG_NUMA |
193 | set_cpus_allowed(current, oldmask); | 196 | set_cpus_allowed_ptr(current, &oldmask); |
194 | current->mempolicy = oldpol; | 197 | current->mempolicy = oldpol; |
195 | #endif | 198 | #endif |
196 | return error; | 199 | return error; |