Re: lib/mpi: BUG: sleeping function called from invalid context on next-20160726

From: Nicolai Stange
Date: Thu Jul 28 2016 - 03:40:32 EST


Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> writes:

> On Wed, Jul 27, 2016 at 11:05:05PM +0200, Nicolai Stange wrote:
>>
>> with linux-next-20160726, I get this:
>>
>> BUG: sleeping function called from invalid context at /mnt/scratch/nic/linux-next/mm/slab.h:388
>
> Does this patch help?

Yes, works like a charm now!


>> I would have sent a patch, but there is another point which puzzles me
>> in mpi_read_raw_from_sgl():
>>
>> [...]
>> const u8 *buff;
>> [...]
>> sg_miter_start(&miter, sgl, ents, SG_MITER_ATOMIC | SG_MITER_FROM_SG);
>>
>> lzeros = 0;
>> len = 0;
>> while (nbytes > 0) {
>> while (len && !*buff) {
>> lzeros++;
>> len--;
>> buff++;
>> }
>>
>>
>> Thus, buff isn't initialized before its first use? Or am I misreading
>> something here?
>
> On the first entry len is zero therefore we will go to the end of the
> loop and initialise buff.

Hah! Thanks, although being obvious, I didn't see this...


Thanks,

Nicolai