net: add a new ndo_tunnel_ioctl method
This method is used to properly allow kernel callers of the IPv4 route management ioctls. The exsting ip_tunnel_ioctl helper is renamed to ip_tunnel_ctl to better reflect that it doesn't directly implement ioctls touching user memory, and is used for the guts of ndo_tunnel_ctl implementations. A new ip_tunnel_ioctl helper is added that can be wired up directly to the ndo_do_ioctl method and takes care of the copy to and from userspace. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
c1fd1182c4
commit
607259a695
@@ -53,6 +53,7 @@ struct netpoll_info;
|
||||
struct device;
|
||||
struct phy_device;
|
||||
struct dsa_port;
|
||||
struct ip_tunnel_parm;
|
||||
struct macsec_context;
|
||||
struct macsec_ops;
|
||||
|
||||
@@ -1274,6 +1275,9 @@ struct netdev_net_notifier {
|
||||
* Get devlink port instance associated with a given netdev.
|
||||
* Called with a reference on the netdevice and devlink locks only,
|
||||
* rtnl_lock is not held.
|
||||
* int (*ndo_tunnel_ctl)(struct net_device *dev, struct ip_tunnel_parm *p,
|
||||
* int cmd);
|
||||
* Add, change, delete or get information on an IPv4 tunnel.
|
||||
*/
|
||||
struct net_device_ops {
|
||||
int (*ndo_init)(struct net_device *dev);
|
||||
@@ -1479,6 +1483,8 @@ struct net_device_ops {
|
||||
int (*ndo_xsk_wakeup)(struct net_device *dev,
|
||||
u32 queue_id, u32 flags);
|
||||
struct devlink_port * (*ndo_get_devlink_port)(struct net_device *dev);
|
||||
int (*ndo_tunnel_ctl)(struct net_device *dev,
|
||||
struct ip_tunnel_parm *p, int cmd);
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user