diff options
| author | Jan Engelmohr <jan.engelmohr@mailbox.tu-dresden.de> | 2016-07-26 15:25:59 +0200 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-08-26 15:52:24 +0200 |
| commit | 516480c70a5392533c2e3a81863ac02206a66e1b (patch) | |
| tree | c22efa9678c72859bd4f47c40d40e57139fa8131 /drivers/net/can | |
| parent | 08b83025dbff0cf59c6de550262999b3959067b2 (diff) | |
3.10.66 -> 3.10.67
Diffstat (limited to 'drivers/net/can')
| -rw-r--r-- | drivers/net/can/dev.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index 9bf47a064..a4694aa20 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -643,10 +643,14 @@ static int can_changelink(struct net_device *dev, if (dev->flags & IFF_UP) return -EBUSY; cm = nla_data(data[IFLA_CAN_CTRLMODE]); - if (cm->flags & ~priv->ctrlmode_supported) + + /* check whether changed bits are allowed to be modified */ + if (cm->mask & ~priv->ctrlmode_supported) return -EOPNOTSUPP; + + /* clear bits to be modified and copy the flag values */ priv->ctrlmode &= ~cm->mask; - priv->ctrlmode |= cm->flags; + priv->ctrlmode |= (cm->flags & cm->mask); } if (data[IFLA_CAN_BITTIMING]) { |
