@@ -5396,9 +5396,10 @@ static int ixgbe_fwd_ring_up(struct ixgbe_adapter *adapter,
5396
5396
return err ;
5397
5397
}
5398
5398
5399
- static int ixgbe_macvlan_up (struct net_device * vdev , void * data )
5399
+ static int ixgbe_macvlan_up (struct net_device * vdev ,
5400
+ struct netdev_nested_priv * priv )
5400
5401
{
5401
- struct ixgbe_adapter * adapter = data ;
5402
+ struct ixgbe_adapter * adapter = ( struct ixgbe_adapter * ) priv -> data ;
5402
5403
struct ixgbe_fwd_adapter * accel ;
5403
5404
5404
5405
if (!netif_is_macvlan (vdev ))
@@ -5415,8 +5416,12 @@ static int ixgbe_macvlan_up(struct net_device *vdev, void *data)
5415
5416
5416
5417
static void ixgbe_configure_dfwd (struct ixgbe_adapter * adapter )
5417
5418
{
5419
+ struct netdev_nested_priv priv = {
5420
+ .data = (void * )adapter ,
5421
+ };
5422
+
5418
5423
netdev_walk_all_upper_dev_rcu (adapter -> netdev ,
5419
- ixgbe_macvlan_up , adapter );
5424
+ ixgbe_macvlan_up , & priv );
5420
5425
}
5421
5426
5422
5427
static void ixgbe_configure (struct ixgbe_adapter * adapter )
@@ -9023,9 +9028,10 @@ static void ixgbe_set_prio_tc_map(struct ixgbe_adapter *adapter)
9023
9028
}
9024
9029
9025
9030
#endif /* CONFIG_IXGBE_DCB */
9026
- static int ixgbe_reassign_macvlan_pool (struct net_device * vdev , void * data )
9031
+ static int ixgbe_reassign_macvlan_pool (struct net_device * vdev ,
9032
+ struct netdev_nested_priv * priv )
9027
9033
{
9028
- struct ixgbe_adapter * adapter = data ;
9034
+ struct ixgbe_adapter * adapter = ( struct ixgbe_adapter * ) priv -> data ;
9029
9035
struct ixgbe_fwd_adapter * accel ;
9030
9036
int pool ;
9031
9037
@@ -9062,13 +9068,16 @@ static int ixgbe_reassign_macvlan_pool(struct net_device *vdev, void *data)
9062
9068
static void ixgbe_defrag_macvlan_pools (struct net_device * dev )
9063
9069
{
9064
9070
struct ixgbe_adapter * adapter = netdev_priv (dev );
9071
+ struct netdev_nested_priv priv = {
9072
+ .data = (void * )adapter ,
9073
+ };
9065
9074
9066
9075
/* flush any stale bits out of the fwd bitmask */
9067
9076
bitmap_clear (adapter -> fwd_bitmask , 1 , 63 );
9068
9077
9069
9078
/* walk through upper devices reassigning pools */
9070
9079
netdev_walk_all_upper_dev_rcu (dev , ixgbe_reassign_macvlan_pool ,
9071
- adapter );
9080
+ & priv );
9072
9081
}
9073
9082
9074
9083
/**
@@ -9242,14 +9251,18 @@ struct upper_walk_data {
9242
9251
u8 queue ;
9243
9252
};
9244
9253
9245
- static int get_macvlan_queue (struct net_device * upper , void * _data )
9254
+ static int get_macvlan_queue (struct net_device * upper ,
9255
+ struct netdev_nested_priv * priv )
9246
9256
{
9247
9257
if (netif_is_macvlan (upper )) {
9248
9258
struct ixgbe_fwd_adapter * vadapter = macvlan_accel_priv (upper );
9249
- struct upper_walk_data * data = _data ;
9250
- struct ixgbe_adapter * adapter = data -> adapter ;
9251
- int ifindex = data -> ifindex ;
9259
+ struct ixgbe_adapter * adapter ;
9260
+ struct upper_walk_data * data ;
9261
+ int ifindex ;
9252
9262
9263
+ data = (struct upper_walk_data * )priv -> data ;
9264
+ ifindex = data -> ifindex ;
9265
+ adapter = data -> adapter ;
9253
9266
if (vadapter && upper -> ifindex == ifindex ) {
9254
9267
data -> queue = adapter -> rx_ring [vadapter -> rx_base_queue ]-> reg_idx ;
9255
9268
data -> action = data -> queue ;
@@ -9265,6 +9278,7 @@ static int handle_redirect_action(struct ixgbe_adapter *adapter, int ifindex,
9265
9278
{
9266
9279
struct ixgbe_ring_feature * vmdq = & adapter -> ring_feature [RING_F_VMDQ ];
9267
9280
unsigned int num_vfs = adapter -> num_vfs , vf ;
9281
+ struct netdev_nested_priv priv ;
9268
9282
struct upper_walk_data data ;
9269
9283
struct net_device * upper ;
9270
9284
@@ -9284,8 +9298,9 @@ static int handle_redirect_action(struct ixgbe_adapter *adapter, int ifindex,
9284
9298
data .ifindex = ifindex ;
9285
9299
data .action = 0 ;
9286
9300
data .queue = 0 ;
9301
+ priv .data = (void * )& data ;
9287
9302
if (netdev_walk_all_upper_dev_rcu (adapter -> netdev ,
9288
- get_macvlan_queue , & data )) {
9303
+ get_macvlan_queue , & priv )) {
9289
9304
* action = data .action ;
9290
9305
* queue = data .queue ;
9291
9306
0 commit comments