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; |
