Re: Preemptible idr_alloc() in QRTR code

From: Mark Rutland
Date: Tue Jan 26 2021 - 11:25:38 EST


On Tue, Jan 26, 2021 at 02:58:33PM +0000, Matthew Wilcox wrote:
> On Tue, Jan 26, 2021 at 10:47:34AM +0000, Mark Rutland wrote:
> > Hi,
> >
> > When fuzzing arm64 with Syzkaller, I'm seeing some splats where
> > this_cpu_ptr() is used in the bowels of idr_alloc(), by way of
> > radix_tree_node_alloc(), in a preemptible context:
>
> I sent a patch to fix this last June. The maintainer seems to be
> under the impression that I care an awful lot more about their
> code than I do.
>
> https://lore.kernel.org/netdev/20200605120037.17427-1-willy@xxxxxxxxxxxxx/

Ah; I hadn't spotted the (glaringly obvious) GFP_ATOMIC abuse, thanks
for the pointer, and sorry for the noise.

It looks like Eric was after a fix that trivially backported to v4.7
(and hence couldn't rely on xarray) but instead it just got left broken
for months. :/

Bjorn, is this something you care about? You seem to have the most
commits to the file, and otherwise the official maintainer is Dave
Miller per get_maintainer.pl.

It is very tempting to make the config option depend on BROKEN...

Thanks,
Mark.