@@ -5396,9 +5396,10 @@ static int ixgbe_fwd_ring_up(struct ixgbe_adapter *adapter,
53965396 return err ;
53975397}
53985398
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 )
54005401{
5401- struct ixgbe_adapter * adapter = data ;
5402+ struct ixgbe_adapter * adapter = ( struct ixgbe_adapter * ) priv -> data ;
54025403 struct ixgbe_fwd_adapter * accel ;
54035404
54045405 if (!netif_is_macvlan (vdev ))
@@ -5415,8 +5416,12 @@ static int ixgbe_macvlan_up(struct net_device *vdev, void *data)
54155416
54165417static void ixgbe_configure_dfwd (struct ixgbe_adapter * adapter )
54175418{
5419+ struct netdev_nested_priv priv = {
5420+ .data = (void * )adapter ,
5421+ };
5422+
54185423 netdev_walk_all_upper_dev_rcu (adapter -> netdev ,
5419- ixgbe_macvlan_up , adapter );
5424+ ixgbe_macvlan_up , & priv );
54205425}
54215426
54225427static void ixgbe_configure (struct ixgbe_adapter * adapter )
@@ -9023,9 +9028,10 @@ static void ixgbe_set_prio_tc_map(struct ixgbe_adapter *adapter)
90239028}
90249029
90259030#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 )
90279033{
9028- struct ixgbe_adapter * adapter = data ;
9034+ struct ixgbe_adapter * adapter = ( struct ixgbe_adapter * ) priv -> data ;
90299035 struct ixgbe_fwd_adapter * accel ;
90309036 int pool ;
90319037
@@ -9062,13 +9068,16 @@ static int ixgbe_reassign_macvlan_pool(struct net_device *vdev, void *data)
90629068static void ixgbe_defrag_macvlan_pools (struct net_device * dev )
90639069{
90649070 struct ixgbe_adapter * adapter = netdev_priv (dev );
9071+ struct netdev_nested_priv priv = {
9072+ .data = (void * )adapter ,
9073+ };
90659074
90669075 /* flush any stale bits out of the fwd bitmask */
90679076 bitmap_clear (adapter -> fwd_bitmask , 1 , 63 );
90689077
90699078 /* walk through upper devices reassigning pools */
90709079 netdev_walk_all_upper_dev_rcu (dev , ixgbe_reassign_macvlan_pool ,
9071- adapter );
9080+ & priv );
90729081}
90739082
90749083/**
@@ -9242,14 +9251,18 @@ struct upper_walk_data {
92429251 u8 queue ;
92439252};
92449253
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 )
92469256{
92479257 if (netif_is_macvlan (upper )) {
92489258 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 ;
92529262
9263+ data = (struct upper_walk_data * )priv -> data ;
9264+ ifindex = data -> ifindex ;
9265+ adapter = data -> adapter ;
92539266 if (vadapter && upper -> ifindex == ifindex ) {
92549267 data -> queue = adapter -> rx_ring [vadapter -> rx_base_queue ]-> reg_idx ;
92559268 data -> action = data -> queue ;
@@ -9265,6 +9278,7 @@ static int handle_redirect_action(struct ixgbe_adapter *adapter, int ifindex,
92659278{
92669279 struct ixgbe_ring_feature * vmdq = & adapter -> ring_feature [RING_F_VMDQ ];
92679280 unsigned int num_vfs = adapter -> num_vfs , vf ;
9281+ struct netdev_nested_priv priv ;
92689282 struct upper_walk_data data ;
92699283 struct net_device * upper ;
92709284
@@ -9284,8 +9298,9 @@ static int handle_redirect_action(struct ixgbe_adapter *adapter, int ifindex,
92849298 data .ifindex = ifindex ;
92859299 data .action = 0 ;
92869300 data .queue = 0 ;
9301+ priv .data = (void * )& data ;
92879302 if (netdev_walk_all_upper_dev_rcu (adapter -> netdev ,
9288- get_macvlan_queue , & data )) {
9303+ get_macvlan_queue , & priv )) {
92899304 * action = data .action ;
92909305 * queue = data .queue ;
92919306
0 commit comments