[ovs-dev] [PATCH] ofproto: Fix crash on PACKET_OUT due to recursive locking after upcall.
Ben Pfaff
blp at ovn.org
Mon Nov 25 21:45:35 UTC 2019
On Fri, Nov 01, 2019 at 10:24:39PM +0100, Ilya Maximets wrote:
> Handling of OpenFlow PACKET_OUT implies pushing the packet through
> the datapath and packet processing inside the datapath could trigger
> an upcall. In case of system datapath, 'dpif_execute()' sends packet
> to the kernel module and returns. If any, upcall will be triggered
> inside the kernel and handled by a separate thread in userspace.
> But in case of userspace datapath full processing of the packet happens
> inside the 'dpif_execute()' in the same thread that handled PACKET_OUT.
> This causes an issue if upcall will lead to modification of flow rules.
Thank you very much for the fix. It is simpler and cleaner than I
expected. It looks correct to me and it passes all of the tests for me
locally.
Acked-by: Ben Pfaff <blp at ovn.org>
More information about the dev
mailing list