Hi! 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.