History

padata: make padata_do_parallel find alternate callback CPU

padata_do_parallel currently returns -EINVAL if the callback CPU isn't in the callback cpumask. pcrypt tries to prevent this situation by keeping its own callback cpumask in sync with padata's and checks that the callback CPU it passes to padata is valid. Make padata handle this instead. padata_do_parallel now takes a pointer to the callback CPU and updates it for the caller if an alternate CPU is used. Overall behavior in terms of which callback CPUs are chosen stays the same. Prepares for removal of the padata cpumask notifier in pcrypt, which will fix a lockdep complaint about nested acquisition of the CPU hotplug lock later in the series.

Daniel Jordan committed 7 years ago

Commit e6ce0e01 parent 509b3203 files · +23 −39Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/padata.h+1−1
@@ -154,7 +154,7 @@ struct padata_instance { · 153 unmodified lines
154extern struct padata_instance *padata_alloc_possible(const char *name);154extern struct padata_instance *padata_alloc_possible(const char *name);
155extern void padata_free(struct padata_instance *pinst);155extern void padata_free(struct padata_instance *pinst);
156extern int padata_do_parallel(struct padata_instance *pinst,156extern int padata_do_parallel(struct padata_instance *pinst,
157 struct padata_priv *padata, int cb_cpu);157 struct padata_priv *padata, int *cb_cpu);
158extern void padata_do_serial(struct padata_priv *padata);158extern void padata_do_serial(struct padata_priv *padata);
159extern int padata_set_cpumask(struct padata_instance *pinst, int cpumask_type,159extern int padata_set_cpumask(struct padata_instance *pinst, int cpumask_type,
160 cpumask_var_t cpumask);160 cpumask_var_t cpumask);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t