Re: [GIT] Networking

From: Marc Zyngier
Date: Mon Jan 18 2016 - 06:31:16 EST


Hi Kalle,

On 16/01/16 11:57, Kalle Valo wrote:
> Marc Zyngier <marc.zyngier@xxxxxxx> writes:
>
>> David, Hante,
>>
>> On 13/01/16 02:51, David Miller wrote:
>>
>> [...]
>>
>>> Hante Meuleman (33):
>> [...]
>>> brcmfmac: Move all module parameters to one place
>
> As a reminder to myself this is the commit id:
>
> 7d34b0560567 brcmfmac: Move all module parameters to one place
>
>> This particular patch breaks one of my boxes in a spectacular way:
>>
>> [ 3.602155] Unable to handle kernel paging request at virtual address 000027e4
>> [ 3.602160] pgd = c0003000
>> [ 3.602169] [000027e4] *pgd=80000040004003, *pmd=00000000
>> [ 3.602181] Internal error: Oops: 206 [#1] PREEMPT SMP ARM
>
> [...]
>
>> This is caused by this hunk:
>>
>> @@ -890,7 +887,8 @@ static void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev)
>> if (!sdiodev->sg_support)
>> return;
>>
>> - nents = max_t(uint, BRCMF_DEFAULT_RXGLOM_SIZE, brcmf_sdiod_txglomsz);
>> + nents = max_t(uint, BRCMF_DEFAULT_RXGLOM_SIZE,
>> + sdiodev->bus_if->drvr->settings->sdiod_txglomsz);
>> nents += (nents >> 4) + 1;
>>
>> WARN_ON(nents > sdiodev->max_segment_count);
>>
>> were drvr->settings is NULL (as the settings allocation seems to be done
>> much later). The fix is not completely obvious to me (probably requires
>> pushing the call to brcmf_mp_device_attach() down into the various bus
>> specific functions). An alternative would be to restore the txglomsz
>> parameter as it was before and not rely on settings being allocated.
>
> Should we revert the patch or can you Hante fix this? The revert doesn't
> seem to be trivial so I would appreciate if someone could send a patch.

I've worked out a partial revert (see below) that allows my system to
boot, but I'd rather see a proper fix from the maintainer of this code.

Thanks,

M.