can: fix oops caused by wrong rtnl newlink usage
Subsystems (3)
PATCH 1/1 can: fix oops caused by wrong rtnl newlink usage
For 'real' hardware CAN devices the netlink interface is used to set CAN specific communication parameters. Real CAN hardware can not be created with the ip tool ...
The invocation of 'ip link add type can' lead to an oops as the standard rtnl newlink function was called:
http://bugzilla.kernel.org/show_bug.cgi?id=13954
This patch adds a private newlink function for the CAN device driver interface that unconditionally returns -EOPNOTSUPP.
---
drivers/net/can/dev.c +7 -0
@@ -611,11 +611,18 @@ nla_put_failure:return -EMSGSIZE ; } +static int can_newlink (struct net_device *dev, +struct nlattr *tb[],struct nlattr *data[]) +{ +return -EOPNOTSUPP ; +} +static struct rtnl_link_ops can_link_ops__read_mostly = { .kind ="can" , .maxtype =IFLA_CAN_MAX , .policy = can_policy, .setup = can_setup, + .newlink = can_newlink, .changelink = can_changelink, .fill_info = can_fill_info, .fill_xstats = can_fill_xstats,
From: Oliver Hartkopp <[email protected]>
Date: Tue, 11 Aug 2009 14:41:24 +0200
Quoted 7 lines
For 'real' hardware CAN devices the netlink interface is used to set CAN specific communication parameters. Real CAN hardware can not be created with the ip tool ...
The invocation of 'ip link add type can' lead to an oops as the standard rtnl newlink function was called:
Quoted 7 lines
http://bugzilla.kernel.org/show_bug.cgi?id=13954
This patch adds a private newlink function for the CAN device driver interface that unconditionally returns
-EOPNOTSUPP.Signed-off-by Oliver Hartkopp <[email protected]>Reported-by Dmitry Eremin-Solenikov <[email protected]>
Applied to net-2.6