Message ID | 1587785988-23517-1-git-send-email-xiangxia.m.yue@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [1/2] net: openvswitch: suitable access to the dp_meters | expand |
From: xiangxia.m.yue@gmail.com Date: Sat, 25 Apr 2020 11:39:47 +0800 > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > To fix the following sparse warning: > | net/openvswitch/meter.c:109:38: sparse: sparse: incorrect type > | in assignment (different address spaces) ... > | net/openvswitch/meter.c:720:45: sparse: sparse: incorrect type > | in argument 1 (different address spaces) ... > > Reported-by: kbuild test robot <lkp@intel.com> > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Applied.
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c index 915f31123f23..612ad5586ce9 100644 --- a/net/openvswitch/meter.c +++ b/net/openvswitch/meter.c @@ -107,8 +107,8 @@ dp_meter_instance_realloc(struct dp_meter_table *tbl, u32 size) return -ENOMEM; for (i = 0; i < n_meters; i++) - new_ti->dp_meters[i] = - rcu_dereference_ovsl(ti->dp_meters[i]); + if (rcu_dereference_ovsl(ti->dp_meters[i])) + new_ti->dp_meters[i] = ti->dp_meters[i]; rcu_assign_pointer(tbl->ti, new_ti); call_rcu(&ti->rcu, dp_meter_instance_free_rcu); @@ -752,7 +752,7 @@ void ovs_meters_exit(struct datapath *dp) int i; for (i = 0; i < ti->n_meters; i++) - ovs_meter_free(ti->dp_meters[i]); + ovs_meter_free(rcu_dereference_raw(ti->dp_meters[i])); dp_meter_instance_free(ti); }