Commit ac2a7b13 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge tag 'linux-can-fixes-for-6.5-20230724' of...

Merge tag 'linux-can-fixes-for-6.5-20230724' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can

Marc Kleine-Budde says:

====================
pull-request: can 2023-07-24

The first patch is by me and adds a missing set of CAN state to
CAN_STATE_STOPPED on close in the gs_usb driver.

The last patch is by Eric Dumazet and fixes a lockdep issue in the CAN
raw protocol.

* tag 'linux-can-fixes-for-6.5-20230724' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
  can: raw: fix lockdep issue in raw_release()
  can: gs_usb: gs_can_close(): add missing set of CAN state to CAN_STATE_STOPPED
====================

Link: https://lore.kernel.org/r/20230724150141.766047-1-mkl@pengutronix.de


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents a3336056 11c9027c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1030,6 +1030,8 @@ static int gs_can_close(struct net_device *netdev)
	usb_kill_anchored_urbs(&dev->tx_submitted);
	atomic_set(&dev->active_tx_urbs, 0);

	dev->can.state = CAN_STATE_STOPPED;

	/* reset the device */
	rc = gs_cmd_reset(dev);
	if (rc < 0)
+3 −2
Original line number Diff line number Diff line
@@ -386,9 +386,9 @@ static int raw_release(struct socket *sock)
	list_del(&ro->notifier);
	spin_unlock(&raw_notifier_lock);

	rtnl_lock();
	lock_sock(sk);

	rtnl_lock();
	/* remove current filters & unregister */
	if (ro->bound) {
		if (ro->dev)
@@ -405,12 +405,13 @@ static int raw_release(struct socket *sock)
	ro->dev = NULL;
	ro->count = 0;
	free_percpu(ro->uniq);
	rtnl_unlock();

	sock_orphan(sk);
	sock->sk = NULL;

	release_sock(sk);
	rtnl_unlock();

	sock_put(sk);

	return 0;