On Fri, 31 May 2019 19:18:17 +0000, Saeed Mahameed wrote:
> > + if (!bpf_op || flags & XDP_FLAGS_SKB_MODE)
> > + mode = XDP_FLAGS_SKB_MODE;
> > +
> > + curr_mode = dev_xdp_current_mode(dev);
> > +
> > + if (!offload && curr_mode && (mode ^ curr_mode) &
> > + (XDP_FLAGS_DRV_MODE | XDP_FLAGS_SKB_MODE)) {
>
> if i am reading this correctly this is equivalent to :
>
> if (!offload && (curre_mode != mode))
> offlad is false then curr_mode and mode must be DRV or GENERIC ..
Naw, if curr_mode is not set, i.e. nothing installed now, we don't care
about the diff.
> better if you keep bitwise operations for actual bitmasks, mode and
> curr_mode are not bitmask, they can hold one value each .. according to
> your logic..
Well, they hold one bit each, whether one bit is a bitmap perhaps is
disputable? :)
I think the logic is fine.
What happened to my request to move the change in behaviour for
disabling to a separate patch, tho, Bjorn? :)