Otherwise we could return a "false negative" lookup result to the user.
(This is not known to fix any real bug; for it to do so, there would have
to be userspace code that doesn't initialize the "reserved" byte, but I
don't know of any.)
error = -EFAULT;
if (copy_from_user(&uf, ufp, sizeof(struct odp_flow_put)))
goto error;
+ uf.flow.key.reserved = 0;
retry:
table = rcu_dereference(dp->table);
error = -EFAULT;
if (copy_from_user(&uf, ufp, sizeof uf))
goto error;
+ uf.key.reserved = 0;
flow = dp_table_lookup(table, &uf.key);
error = -ENOENT;
if (__copy_from_user(&uf, ufp, sizeof uf))
return -EFAULT;
+ uf.key.reserved = 0;
flow = dp_table_lookup(table, &uf.key);
if (!flow)