Skip to contentSkip to conversation

can: fix oops caused by wrong rtnl newlink usage

PATCH Applied Oliver Hartkopp 2 participants 2 messages Aug 11, 2009 – Aug 13, 2009

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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
index 9e4283a..e1a4f82 100644
@@ -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,
maintainer Applied
#1 lore raw

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.

Applied to net-2.6