[ Upstream commit 36453c852816f19947ca482a595dffdd2efa4965 ] If llc_conn_state_process() sees that llc_conn_service() put the skb on a list, it will drop one fewer references to it. This is wrong because the current behavior is that llc_conn_service() never consumes a reference to the skb. The code also makes the number of skb references being dropped conditional on which of ind_prim and cfm_prim are nonzero, yet neither of these affects how many references are *acquired*. So there is extra code that tries to fix this up by sometimes taking another reference. Remove the unnecessary/broken refcounting logic and instead just add an skb_get() before the only two places where an extra reference is actually consumed. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
---|---|---|
.. | ||
af_llc.c | ||
Kconfig | ||
llc_c_ac.c | ||
llc_c_ev.c | ||
llc_c_st.c | ||
llc_conn.c | ||
llc_core.c | ||
llc_if.c | ||
llc_input.c | ||
llc_output.c | ||
llc_pdu.c | ||
llc_proc.c | ||
llc_s_ac.c | ||
llc_s_ev.c | ||
llc_s_st.c | ||
llc_sap.c | ||
llc_station.c | ||
Makefile | ||
sysctl_net_llc.c |