[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1a5f4fb788453dd8807bc5c225a9907f@linux.vnet.ibm.com>
Date: Fri, 06 Nov 2020 14:19:10 -0600
From: ljp <ljp@...ux.vnet.ibm.com>
To: Stephen Rothwell <sfr@...b.auug.org.au>
Cc: David Miller <davem@...emloft.net>,
Networking <netdev@...r.kernel.org>,
Jakub Kicinski <kuba@...nel.org>,
Lijun Pan <ljp@...ux.ibm.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>,
Sukadev Bhattiprolu <sukadev@...ux.ibm.com>
Subject: Re: linux-next: manual merge of the net-next tree with the net tree
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 */
Powered by blists - more mailing lists