On 2019/9/11 15:34, Michal Hocko wrote: > On Wed 11-09-19 15:22:30, Yunsheng Lin wrote: > [...] >> It seems that there is no protection that prevent setting the node >> of device to an invalid node. >> And the kernel does have a few different check now: >> 1) some does " < 0" check; >> 2) some does "== NUMA_NO_NODE" check; >> 3) some does ">= MAX_NUMNODES" check; >> 4) some does "< 0 || >= MAX_NUMNODES || !node_online(node)" check. >> >> We need to be consistent about the checking, right? > > You can try and chase each of them and see what to do with them. I > suspect they are a result of random attempts to fortify the code in many > cases. Consistency is certainly good but spreading more checks all over > the place just adds more cargo cult. Each check should be reasonably > justified.
Ok, Let me focus on making the node_to_cpumask_map() NUMA_NO_NODE aware by only checking "node == NUMA_NO_NODE" first. >