[PATCH v2 0/7] Cleanup task_struct::state

From: Peter Zijlstra
Date: Fri Jun 11 2021 - 04:34:46 EST


The task_struct::state variable is a bit odd in a number of ways:

- it's declared 'volatile' (against current practises);
- it's 'unsigned long' which is a weird size;
- it's type is inconsistent when used for function arguments.

These patches clean that up by making it consistently 'unsigned int', and
replace (almost) all accesses with READ_ONCE()/WRITE_ONCE(). In order to not
miss any, the variable is renamed, ensuring a missed conversion results in a
compile error.

The first few patches fix a number of pre-existing errors and introduce a few
helpers to make the final conversion less painful.

This series applies on top of tip/master, and has been having the all-clear
from the robots for the past week.

Since v1:
- fixed a whole bunch of compile fail on !x86
- collected tags
- (slightly) smaller Cc list

The plan is to stick them in tip/sched/core early next week, I'm hoping this
won't cause too much pain for sfr.