net: qrtr: ns: Fix module refcnt
authorChris Lew <quic_clew@quicinc.com>
Mon, 13 May 2024 17:31:46 +0000 (10:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 May 2024 08:47:45 +0000 (09:47 +0100)
commitfd76e5ccc48f9f54eb44909dd7c0b924005f1582
tree5503252aeeb709352d7c523921e582d75d2a47f8
parent99975ad644c7836414183fa7be4f883a4fb2bf64
net: qrtr: ns: Fix module refcnt

The qrtr protocol core logic and the qrtr nameservice are combined into
a single module. Neither the core logic or nameservice provide much
functionality by themselves; combining the two into a single module also
prevents any possible issues that may stem from client modules loading
inbetween qrtr and the ns.

Creating a socket takes two references to the module that owns the
socket protocol. Since the ns needs to create the control socket, this
creates a scenario where there are always two references to the qrtr
module. This prevents the execution of 'rmmod' for qrtr.

To resolve this, forcefully put the module refcount for the socket
opened by the nameservice.

Fixes: a365023a76f2 ("net: qrtr: combine nameservice into main module")
Reported-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Tested-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Chris Lew <quic_clew@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/qrtr/ns.c