提交 a73de293 编写于 作者: S Sebastian Andrzej Siewior 提交者: Heiko Carstens

s390: replace deprecated CPU-hotplug functions

The functions get_online_cpus() and put_online_cpus() have been
deprecated during the CPU hotplug rework. They map directly to
cpus_read_lock() and cpus_read_unlock().

Replace deprecated CPU-hotplug functions with the official version.
The behavior remains unchanged.
Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20210803141621.780504-5-bigeasy@linutronix.deSigned-off-by: NHeiko Carstens <hca@linux.ibm.com>
上级 de5012b4
...@@ -33,12 +33,12 @@ static void *diag0c_store(unsigned int *count) ...@@ -33,12 +33,12 @@ static void *diag0c_store(unsigned int *count)
unsigned int cpu_count, cpu, i; unsigned int cpu_count, cpu, i;
void **cpu_vec; void **cpu_vec;
get_online_cpus(); cpus_read_lock();
cpu_count = num_online_cpus(); cpu_count = num_online_cpus();
cpu_vec = kmalloc_array(num_possible_cpus(), sizeof(*cpu_vec), cpu_vec = kmalloc_array(num_possible_cpus(), sizeof(*cpu_vec),
GFP_KERNEL); GFP_KERNEL);
if (!cpu_vec) if (!cpu_vec)
goto fail_put_online_cpus; goto fail_unlock_cpus;
/* Note: Diag 0c needs 8 byte alignment and real storage */ /* Note: Diag 0c needs 8 byte alignment and real storage */
diag0c_data = kzalloc(struct_size(diag0c_data, entry, cpu_count), diag0c_data = kzalloc(struct_size(diag0c_data, entry, cpu_count),
GFP_KERNEL | GFP_DMA); GFP_KERNEL | GFP_DMA);
...@@ -54,13 +54,13 @@ static void *diag0c_store(unsigned int *count) ...@@ -54,13 +54,13 @@ static void *diag0c_store(unsigned int *count)
on_each_cpu(diag0c_fn, cpu_vec, 1); on_each_cpu(diag0c_fn, cpu_vec, 1);
*count = cpu_count; *count = cpu_count;
kfree(cpu_vec); kfree(cpu_vec);
put_online_cpus(); cpus_read_unlock();
return diag0c_data; return diag0c_data;
fail_kfree_cpu_vec: fail_kfree_cpu_vec:
kfree(cpu_vec); kfree(cpu_vec);
fail_put_online_cpus: fail_unlock_cpus:
put_online_cpus(); cpus_read_unlock();
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
......
...@@ -68,7 +68,7 @@ static int show_diag_stat(struct seq_file *m, void *v) ...@@ -68,7 +68,7 @@ static int show_diag_stat(struct seq_file *m, void *v)
unsigned long n = (unsigned long) v - 1; unsigned long n = (unsigned long) v - 1;
int cpu, prec, tmp; int cpu, prec, tmp;
get_online_cpus(); cpus_read_lock();
if (n == 0) { if (n == 0) {
seq_puts(m, " "); seq_puts(m, " ");
...@@ -87,7 +87,7 @@ static int show_diag_stat(struct seq_file *m, void *v) ...@@ -87,7 +87,7 @@ static int show_diag_stat(struct seq_file *m, void *v)
} }
seq_printf(m, " %s\n", diag_map[n-1].name); seq_printf(m, " %s\n", diag_map[n-1].name);
} }
put_online_cpus(); cpus_read_unlock();
return 0; return 0;
} }
......
...@@ -228,7 +228,7 @@ int show_interrupts(struct seq_file *p, void *v) ...@@ -228,7 +228,7 @@ int show_interrupts(struct seq_file *p, void *v)
int index = *(loff_t *) v; int index = *(loff_t *) v;
int cpu, irq; int cpu, irq;
get_online_cpus(); cpus_read_lock();
if (index == 0) { if (index == 0) {
seq_puts(p, " "); seq_puts(p, " ");
for_each_online_cpu(cpu) for_each_online_cpu(cpu)
...@@ -258,7 +258,7 @@ int show_interrupts(struct seq_file *p, void *v) ...@@ -258,7 +258,7 @@ int show_interrupts(struct seq_file *p, void *v)
seq_putc(p, '\n'); seq_putc(p, '\n');
} }
out: out:
put_online_cpus(); cpus_read_unlock();
return 0; return 0;
} }
......
...@@ -1138,7 +1138,7 @@ static long cfset_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -1138,7 +1138,7 @@ static long cfset_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{ {
int ret; int ret;
get_online_cpus(); cpus_read_lock();
mutex_lock(&cfset_ctrset_mutex); mutex_lock(&cfset_ctrset_mutex);
switch (cmd) { switch (cmd) {
case S390_HWCTR_START: case S390_HWCTR_START:
...@@ -1155,7 +1155,7 @@ static long cfset_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -1155,7 +1155,7 @@ static long cfset_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
break; break;
} }
mutex_unlock(&cfset_ctrset_mutex); mutex_unlock(&cfset_ctrset_mutex);
put_online_cpus(); cpus_read_unlock();
return ret; return ret;
} }
......
...@@ -365,7 +365,7 @@ static inline void *c_update(loff_t *pos) ...@@ -365,7 +365,7 @@ static inline void *c_update(loff_t *pos)
static void *c_start(struct seq_file *m, loff_t *pos) static void *c_start(struct seq_file *m, loff_t *pos)
{ {
get_online_cpus(); cpus_read_lock();
return c_update(pos); return c_update(pos);
} }
...@@ -377,7 +377,7 @@ static void *c_next(struct seq_file *m, void *v, loff_t *pos) ...@@ -377,7 +377,7 @@ static void *c_next(struct seq_file *m, void *v, loff_t *pos)
static void c_stop(struct seq_file *m, void *v) static void c_stop(struct seq_file *m, void *v)
{ {
put_online_cpus(); cpus_read_unlock();
} }
const struct seq_operations cpuinfo_op = { const struct seq_operations cpuinfo_op = {
......
...@@ -793,7 +793,7 @@ static int __smp_rescan_cpus(struct sclp_core_info *info, bool early) ...@@ -793,7 +793,7 @@ static int __smp_rescan_cpus(struct sclp_core_info *info, bool early)
u16 core_id; u16 core_id;
int nr, i; int nr, i;
get_online_cpus(); cpus_read_lock();
mutex_lock(&smp_cpu_state_mutex); mutex_lock(&smp_cpu_state_mutex);
nr = 0; nr = 0;
cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask); cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask);
...@@ -816,7 +816,7 @@ static int __smp_rescan_cpus(struct sclp_core_info *info, bool early) ...@@ -816,7 +816,7 @@ static int __smp_rescan_cpus(struct sclp_core_info *info, bool early)
nr += smp_add_core(&info->core[i], &avail, configured, early); nr += smp_add_core(&info->core[i], &avail, configured, early);
} }
mutex_unlock(&smp_cpu_state_mutex); mutex_unlock(&smp_cpu_state_mutex);
put_online_cpus(); cpus_read_unlock();
return nr; return nr;
} }
...@@ -1055,7 +1055,7 @@ static ssize_t cpu_configure_store(struct device *dev, ...@@ -1055,7 +1055,7 @@ static ssize_t cpu_configure_store(struct device *dev,
return -EINVAL; return -EINVAL;
if (val != 0 && val != 1) if (val != 0 && val != 1)
return -EINVAL; return -EINVAL;
get_online_cpus(); cpus_read_lock();
mutex_lock(&smp_cpu_state_mutex); mutex_lock(&smp_cpu_state_mutex);
rc = -EBUSY; rc = -EBUSY;
/* disallow configuration changes of online cpus and cpu 0 */ /* disallow configuration changes of online cpus and cpu 0 */
...@@ -1104,7 +1104,7 @@ static ssize_t cpu_configure_store(struct device *dev, ...@@ -1104,7 +1104,7 @@ static ssize_t cpu_configure_store(struct device *dev,
} }
out: out:
mutex_unlock(&smp_cpu_state_mutex); mutex_unlock(&smp_cpu_state_mutex);
put_online_cpus(); cpus_read_unlock();
return rc ? rc : count; return rc ? rc : count;
} }
static DEVICE_ATTR(configure, 0644, cpu_configure_show, cpu_configure_store); static DEVICE_ATTR(configure, 0644, cpu_configure_show, cpu_configure_store);
......
...@@ -406,7 +406,7 @@ static ssize_t dispatching_store(struct device *dev, ...@@ -406,7 +406,7 @@ static ssize_t dispatching_store(struct device *dev,
if (val != 0 && val != 1) if (val != 0 && val != 1)
return -EINVAL; return -EINVAL;
rc = 0; rc = 0;
get_online_cpus(); cpus_read_lock();
mutex_lock(&smp_cpu_state_mutex); mutex_lock(&smp_cpu_state_mutex);
if (cpu_management == val) if (cpu_management == val)
goto out; goto out;
...@@ -417,7 +417,7 @@ static ssize_t dispatching_store(struct device *dev, ...@@ -417,7 +417,7 @@ static ssize_t dispatching_store(struct device *dev,
topology_expect_change(); topology_expect_change();
out: out:
mutex_unlock(&smp_cpu_state_mutex); mutex_unlock(&smp_cpu_state_mutex);
put_online_cpus(); cpus_read_unlock();
return rc ? rc : count; return rc ? rc : count;
} }
static DEVICE_ATTR_RW(dispatching); static DEVICE_ATTR_RW(dispatching);
......
...@@ -228,7 +228,7 @@ void *xlate_dev_mem_ptr(phys_addr_t addr) ...@@ -228,7 +228,7 @@ void *xlate_dev_mem_ptr(phys_addr_t addr)
void *bounce = (void *) addr; void *bounce = (void *) addr;
unsigned long size; unsigned long size;
get_online_cpus(); cpus_read_lock();
preempt_disable(); preempt_disable();
if (is_swapped(addr)) { if (is_swapped(addr)) {
size = PAGE_SIZE - (addr & ~PAGE_MASK); size = PAGE_SIZE - (addr & ~PAGE_MASK);
...@@ -237,7 +237,7 @@ void *xlate_dev_mem_ptr(phys_addr_t addr) ...@@ -237,7 +237,7 @@ void *xlate_dev_mem_ptr(phys_addr_t addr)
memcpy_absolute(bounce, (void *) addr, size); memcpy_absolute(bounce, (void *) addr, size);
} }
preempt_enable(); preempt_enable();
put_online_cpus(); cpus_read_unlock();
return bounce; return bounce;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册