@ -4554,7 +4554,7 @@ static int __netif_receive_skb(struct sk_buff *skb)
return ret ;
}
static int generic_xdp_install ( struct net_device * dev , struct netdev_xdp * xdp )
static int generic_xdp_install ( struct net_device * dev , struct netdev_bpf * xdp )
{
struct bpf_prog * old = rtnl_dereference ( dev - > xdp_prog ) ;
struct bpf_prog * new = xdp - > prog ;
@ -7104,26 +7104,26 @@ int dev_change_proto_down(struct net_device *dev, bool proto_down)
}
EXPORT_SYMBOL ( dev_change_proto_down ) ;
u8 __dev_xdp_attached ( struct net_device * dev , xdp_op_t xdp _op, u32 * prog_id )
u8 __dev_xdp_attached ( struct net_device * dev , bpf_op_t bpf _op, u32 * prog_id )
{
struct netdev_xdp xdp ;
struct netdev_bpf xdp ;
memset ( & xdp , 0 , sizeof ( xdp ) ) ;
xdp . command = XDP_QUERY_PROG ;
/* Query must always succeed. */
WARN_ON ( xdp _op( dev , & xdp ) < 0 ) ;
WARN_ON ( bpf _op( dev , & xdp ) < 0 ) ;
if ( prog_id )
* prog_id = xdp . prog_id ;
return xdp . prog_attached ;
}
static int dev_xdp_install ( struct net_device * dev , xdp_op_t xdp _op,
static int dev_xdp_install ( struct net_device * dev , bpf_op_t bpf _op,
struct netlink_ext_ack * extack , u32 flags ,
struct bpf_prog * prog )
{
struct netdev_xdp xdp ;
struct netdev_bpf xdp ;
memset ( & xdp , 0 , sizeof ( xdp ) ) ;
if ( flags & XDP_FLAGS_HW_MODE )
@ -7134,7 +7134,7 @@ static int dev_xdp_install(struct net_device *dev, xdp_op_t xdp_op,
xdp . flags = flags ;
xdp . prog = prog ;
return xdp _op( dev , & xdp ) ;
return bpf _op( dev , & xdp ) ;
}
/**
@ -7151,24 +7151,24 @@ int dev_change_xdp_fd(struct net_device *dev, struct netlink_ext_ack *extack,
{
const struct net_device_ops * ops = dev - > netdev_ops ;
struct bpf_prog * prog = NULL ;
xdp_op_t xdp_op , xdp _chk;
bpf_op_t bpf_op , bpf _chk;
int err ;
ASSERT_RTNL ( ) ;
xdp_op = xdp _chk = ops - > ndo_xdp ;
if ( ! xdp _op & & ( flags & ( XDP_FLAGS_DRV_MODE | XDP_FLAGS_HW_MODE ) ) )
bpf_op = bpf _chk = ops - > ndo_bpf ;
if ( ! bpf _op & & ( flags & ( XDP_FLAGS_DRV_MODE | XDP_FLAGS_HW_MODE ) ) )
return - EOPNOTSUPP ;
if ( ! xdp _op | | ( flags & XDP_FLAGS_SKB_MODE ) )
xdp _op = generic_xdp_install ;
if ( xdp_op = = xdp _chk)
xdp _chk = generic_xdp_install ;
if ( ! bpf _op | | ( flags & XDP_FLAGS_SKB_MODE ) )
bpf _op = generic_xdp_install ;
if ( bpf_op = = bpf _chk)
bpf _chk = generic_xdp_install ;
if ( fd > = 0 ) {
if ( xdp _chk & & __dev_xdp_attached ( dev , xdp _chk, NULL ) )
if ( bpf _chk & & __dev_xdp_attached ( dev , bpf _chk, NULL ) )
return - EEXIST ;
if ( ( flags & XDP_FLAGS_UPDATE_IF_NOEXIST ) & &
__dev_xdp_attached ( dev , xdp _op, NULL ) )
__dev_xdp_attached ( dev , bpf _op, NULL ) )
return - EBUSY ;
prog = bpf_prog_get_type ( fd , BPF_PROG_TYPE_XDP ) ;
@ -7176,7 +7176,7 @@ int dev_change_xdp_fd(struct net_device *dev, struct netlink_ext_ack *extack,
return PTR_ERR ( prog ) ;
}
err = dev_xdp_install ( dev , xdp _op, extack , flags , prog ) ;
err = dev_xdp_install ( dev , bpf _op, extack , flags , prog ) ;
if ( err < 0 & & prog )
bpf_prog_put ( prog ) ;