Re: Kernel panic with 4.16-rc1 (and 4.16-rc2) running selftest

From: Cong Wang
Date: Fri Feb 23 2018 - 19:14:03 EST


On Fri, Feb 23, 2018 at 3:27 PM, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
> On Fri, Feb 23, 2018 at 11:00 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> [adding netdev]
>>
>> On 02/23/2018 08:05 AM, Khalid Aziz wrote:
>>> I am seeing a kernel panic with 4.16-rc1 and 4.16-rc2 kernels when running selftests
>>> from tools/testing/selftests. Last messages from selftest before kernel panic are:
>>>
> ...
>>> Same selftest does not cause panic on 4.15. git bisect pointed to commit 6ce711f2750031d12cec91384ac5cfa0a485b60a ("idr: Make 1-based IDRs more efficient").
>>> Kernel config is attached.
>
> Looks like something horribly wrong with u32 key id idr...

Adding a few printk's, I got:

[ 31.231560] requested handle = ffe00000
[ 31.232426] allocated handle = 0
...
[ 31.246475] requested handle = ffd00000
[ 31.247555] allocated handle = 1


So the bug is here where we can't allocate a specific handle:

err = idr_alloc_u32(&tp_c->handle_idr, ht, &handle,
handle, GFP_KERNEL);
if (err) {
kfree(ht);
return err;
}