Message ID | 20201104114358.37e766a3@canb.auug.org.au |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
Series | linux-next: manual merge of the net-next tree with the net tree | expand |
Context | Check | Description |
---|---|---|
jkicinski/tree_selection | success | Not a local patch |
On 2020-11-03 18:43, Stephen Rothwell wrote: > Hi all, > > Today's linux-next merge of the net-next tree got a conflict in: > > drivers/net/ethernet/ibm/ibmvnic.c > > between commit: > > 1d8504937478 ("powerpc/vnic: Extend "failover pending" window") > > from the net tree and commit: > > 16b5f5ce351f ("ibmvnic: merge do_change_param_reset into do_reset") > > from the net-next tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your > tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any > particularly > complex conflicts. > Sorry I missed this email. The fix is correct. Thank you Stephen. > -- > Cheers, > Stephen Rothwell > > diff --cc drivers/net/ethernet/ibm/ibmvnic.c > index da15913879f8,f4167de30461..000000000000 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@@ -1930,17 -1841,12 +1850,20 @@@ static int do_reset(struct > ibmvnic_adap > netdev_dbg(adapter->netdev, "Re-setting driver (%d)\n", > rwi->reset_reason); > > - rtnl_lock(); > + adapter->reset_reason = rwi->reset_reason; > + /* requestor of VNIC_RESET_CHANGE_PARAM already has the rtnl lock */ > + if (!(adapter->reset_reason == VNIC_RESET_CHANGE_PARAM)) > + rtnl_lock(); > + > + /* > + * Now that we have the rtnl lock, clear any pending failover. > + * This will ensure ibmvnic_open() has either completed or will > + * block until failover is complete. > + */ > + if (rwi->reset_reason == VNIC_RESET_FAILOVER) > + adapter->failover_pending = false; > + > netif_carrier_off(netdev); > - adapter->reset_reason = rwi->reset_reason; > > old_num_rx_queues = adapter->req_rx_queues; > old_num_tx_queues = adapter->req_tx_queues; > @@@ -2214,17 -2140,7 +2157,14 @@@ static void __ibmvnic_reset(struct > work > } > spin_unlock_irqrestore(&adapter->state_lock, flags); > > - if (rwi->reset_reason == VNIC_RESET_CHANGE_PARAM) { > - /* CHANGE_PARAM requestor holds rtnl_lock */ > - rc = do_change_param_reset(adapter, rwi, reset_state); > - } else if (adapter->force_reset_recovery) { > + if (adapter->force_reset_recovery) { > + /* > + * Since we are doing a hard reset now, clear the > + * failover_pending flag so we don't ignore any > + * future MOBILITY or other resets. > + */ > + adapter->failover_pending = false; > + > /* Transport event occurred during previous reset */ > if (adapter->wait_for_reset) { > /* Previous was CHANGE_PARAM; caller locked */
diff --cc drivers/net/ethernet/ibm/ibmvnic.c index da15913879f8,f4167de30461..000000000000 --- a/drivers/net/ethernet/ibm/ibmvnic.c