On Wed, 14 Aug 2019 14:34:06 +0000, Maxim Mikityanskiy wrote: > Don't uninstall an XDP program when none is installed, and don't install > an XDP program that has the same ID as the one already installed. > > dev_change_xdp_fd doesn't perform any checks in case it uninstalls an > XDP program. It means that the driver's ndo_bpf can be called with > XDP_SETUP_PROG asking to set it to NULL even if it's already NULL. This > case happens if the user runs `ip link set eth0 xdp off` when there is > no XDP program attached. > > The symmetrical case is possible when the user tries to set the program > that is already set. > > The drivers typically perform some heavy operations on XDP_SETUP_PROG, > so they all have to handle these cases internally to return early if > they happen. This patch puts this check into the kernel code, so that > all drivers will benefit from it. > > Signed-off-by: Maxim Mikityanskiy <maximmi@xxxxxxxxxxxx> Reviewed-by: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx>