From: Davide Caratti <dcara...@redhat.com> Date: Fri, 22 Feb 2019 12:33:26 +0100
> when act_skbedit was converted to use RCU in the data plane, we added an > error path, but we forgot to drop the action refcount in case of failure > during a 'replace' operation: > > # tc actions add action skbedit ptype otherhost pass index 100 > # tc action show action skbedit > total acts 1 > > action order 0: skbedit ptype otherhost pass > index 100 ref 1 bind 0 > # tc actions replace action skbedit ptype otherhost drop index 100 > RTNETLINK answers: Cannot allocate memory > We have an error talking to the kernel > # tc action show action skbedit > total acts 1 > > action order 0: skbedit ptype otherhost pass > index 100 ref 2 bind 0 > > Ensure we call tcf_idr_release(), in case 'params_new' allocation failed, > also when the action is being replaced. > > Fixes: c749cdda9089 ("net/sched: act_skbedit: don't use spinlock in the data > path") > Signed-off-by: Davide Caratti <dcara...@redhat.com> Also applied and queued up for -stable.