Re: [PATCH bpf 1/3] devmap: Fix premature entry free on destroying map

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/06/14 (金) 21:10:38, Toke Høiland-Jørgensen wrote:
Toke Høiland-Jørgensen <toke@xxxxxxxxxx> writes:

Toshiaki Makita <toshiaki.makita1@xxxxxxxxx> writes:

dev_map_free() waits for flush_needed bitmap to be empty in order to
ensure all flush operations have completed before freeing its entries.
However the corresponding clear_bit() was called before using the
entries, so the entries could be used after free.

All access to the entries needs to be done before clearing the bit.
It seems commit a5e2da6e9787 ("bpf: netdev is never null in
__dev_map_flush") accidentally changed the clear_bit() and memory access
order.

Note that the problem happens only in __dev_map_flush(), not in
dev_map_flush_old(). dev_map_flush_old() is called only after nulling
out the corresponding netdev_map entry, so dev_map_free() never frees
the entry thus no such race happens there.

Fixes: a5e2da6e9787 ("bpf: netdev is never null in __dev_map_flush")
Signed-off-by: Toshiaki Makita <toshiaki.makita1@xxxxxxxxx>

I recently posted a patch[0] that gets rid of the bitmap entirely, so I
think you can drop this one...

Alternatively, since this entire series should probably go to stable, I
can respin mine on top of it?

Indeed conflict will happen, as this is for 'bpf' not 'bpf-next'. Sorry for disturbing your work. I'm also not sure how to proceed in this case.

Toshiaki Makita



[Index of Archives]     [Linux Networking Development]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite Campsites]

  Powered by Linux