Commit 5131a053 authored by Jakub Kicinski's avatar Jakub Kicinski

Merge tag 'linux-can-next-for-6.3-20230208' of...

Merge tag 'linux-can-next-for-6.3-20230208' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next

Marc Kleine-Budde says:

====================
can-next 2023-02-08

The 1st patch is by Oliver Hartkopp and cleans up the CAN_RAW's
raw_setsockopt() for CAN_RAW_FD_FRAMES.

The 2nd patch is by me and fixes the compilation if
CONFIG_CAN_CALC_BITTIMING is disabled. (Problem introduced in last
pull request to next-next.)

* tag 'linux-can-next-for-6.3-20230208' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next:
  can: bittiming: can_calc_bittiming(): add missing parameter to no-op function
  can: raw: use temp variable instead of rolling back config
====================

Link: https://lore.kernel.org/r/20230208210014.3169347-1-mkl@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 9245b518 65db3d8b
...@@ -124,7 +124,7 @@ void can_calc_tdco(struct can_tdc *tdc, const struct can_tdc_const *tdc_const, ...@@ -124,7 +124,7 @@ void can_calc_tdco(struct can_tdc *tdc, const struct can_tdc_const *tdc_const,
#else /* !CONFIG_CAN_CALC_BITTIMING */ #else /* !CONFIG_CAN_CALC_BITTIMING */
static inline int static inline int
can_calc_bittiming(const struct net_device *dev, struct can_bittiming *bt, can_calc_bittiming(const struct net_device *dev, struct can_bittiming *bt,
const struct can_bittiming_const *btc) const struct can_bittiming_const *btc, struct netlink_ext_ack *extack)
{ {
netdev_err(dev, "bit-timing calculation not available\n"); netdev_err(dev, "bit-timing calculation not available\n");
return -EINVAL; return -EINVAL;
......
...@@ -523,6 +523,7 @@ static int raw_setsockopt(struct socket *sock, int level, int optname, ...@@ -523,6 +523,7 @@ static int raw_setsockopt(struct socket *sock, int level, int optname,
struct can_filter sfilter; /* single filter */ struct can_filter sfilter; /* single filter */
struct net_device *dev = NULL; struct net_device *dev = NULL;
can_err_mask_t err_mask = 0; can_err_mask_t err_mask = 0;
int fd_frames;
int count = 0; int count = 0;
int err = 0; int err = 0;
...@@ -664,17 +665,17 @@ static int raw_setsockopt(struct socket *sock, int level, int optname, ...@@ -664,17 +665,17 @@ static int raw_setsockopt(struct socket *sock, int level, int optname,
break; break;
case CAN_RAW_FD_FRAMES: case CAN_RAW_FD_FRAMES:
if (optlen != sizeof(ro->fd_frames)) if (optlen != sizeof(fd_frames))
return -EINVAL; return -EINVAL;
if (copy_from_sockptr(&ro->fd_frames, optval, optlen)) if (copy_from_sockptr(&fd_frames, optval, optlen))
return -EFAULT; return -EFAULT;
/* Enabling CAN XL includes CAN FD */ /* Enabling CAN XL includes CAN FD */
if (ro->xl_frames && !ro->fd_frames) { if (ro->xl_frames && !fd_frames)
ro->fd_frames = ro->xl_frames;
return -EINVAL; return -EINVAL;
}
ro->fd_frames = fd_frames;
break; break;
case CAN_RAW_XL_FRAMES: case CAN_RAW_XL_FRAMES:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment