Re: [PATCH] driver core: ensure a device has valid node id in device_add()

From: Yunsheng Lin
Date: Wed Sep 11 2019 - 07:04:55 EST


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.

>