lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 3 Jul 2017 11:49:38 +1000
From:   Stephen Rothwell <sfr@...b.auug.org.au>
To:     David Miller <davem@...emloft.net>,
        Networking <netdev@...r.kernel.org>,
        Bjorn Helgaas <bhelgaas@...gle.com>
Cc:     Linux-Next Mailing List <linux-next@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Christoph Hellwig <hch@....de>,
        Brian Norris <briannorris@...omium.org>,
        Kalle Valo <kvalo@...eaurora.org>
Subject: Re: linux-next: manual merge of the net-next tree with the pci tree

Hi all,

With the merge window opening, just a reminder that this conflict still
exists.

On Wed, 21 Jun 2017 11:54:43 +1000 Stephen Rothwell <sfr@...b.auug.org.au> wrote:
>
> Today's linux-next merge of the net-next tree got a conflict in:
> 
>   drivers/net/wireless/marvell/mwifiex/pcie.c
> 
> between commit:
> 
>   c336cc0ee4eb ("PCI: Split ->reset_notify() method into ->reset_prepare() and ->reset_done()")
> 
> from the pci tree and commit:
> 
>   68efd0386988 ("mwifiex: pcie: stop setting/clearing 'surprise_removed'")
> 
> 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.
> 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc drivers/net/wireless/marvell/mwifiex/pcie.c
> index 279adf124fc9,b53ecf1eddda..000000000000
> --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
> +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
> @@@ -361,48 -359,35 +361,46 @@@ static void mwifiex_pcie_reset_prepare(
>   	}
>   
>   	mwifiex_dbg(adapter, INFO,
>  -		    "%s: vendor=0x%4.04x device=0x%4.04x rev=%d %s\n",
>  -		    __func__, pdev->vendor, pdev->device,
>  -		    pdev->revision,
>  -		    prepare ? "Pre-FLR" : "Post-FLR");
>  -
>  -	if (prepare) {
>  -		/* Kernel would be performing FLR after this notification.
>  -		 * Cleanup all software without cleaning anything related to
>  -		 * PCIe and HW.
>  -		 */
>  -		mwifiex_shutdown_sw(adapter);
>  -		clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
>  -		clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
>  -	} else {
>  -		/* Kernel stores and restores PCIe function context before and
>  -		 * after performing FLR respectively. Reconfigure the software
>  -		 * and firmware including firmware redownload
>  -		 */
>  -		ret = mwifiex_reinit_sw(adapter);
>  -		if (ret) {
>  -			dev_err(&pdev->dev, "reinit failed: %d\n", ret);
>  -			return;
>  -		}
>  -	}
>  +		    "%s: vendor=0x%4.04x device=0x%4.04x rev=%d Pre-FLR\n",
>  +		    __func__, pdev->vendor, pdev->device, pdev->revision);
>  +
>  +	mwifiex_shutdown_sw(adapter);
> - 	adapter->surprise_removed = true;
>  +	clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
>  +	clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
>   	mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
>   }
>   
>  -static const struct pci_error_handlers mwifiex_pcie_err_handler[] = {
>  -		{ .reset_notify = mwifiex_pcie_reset_notify, },
>  +/*
>  + * Kernel stores and restores PCIe function context before and after performing
>  + * FLR respectively. Reconfigure the software and firmware including firmware
>  + * redownload.
>  + */
>  +static void mwifiex_pcie_reset_done(struct pci_dev *pdev)
>  +{
>  +	struct pcie_service_card *card = pci_get_drvdata(pdev);
>  +	struct mwifiex_adapter *adapter = card->adapter;
>  +	int ret;
>  +
>  +	if (!adapter) {
>  +		dev_err(&pdev->dev, "%s: adapter structure is not valid\n",
>  +			__func__);
>  +		return;
>  +	}
>  +
>  +	mwifiex_dbg(adapter, INFO,
>  +		    "%s: vendor=0x%4.04x device=0x%4.04x rev=%d Post-FLR\n",
>  +		    __func__, pdev->vendor, pdev->device, pdev->revision);
>  +
> - 	adapter->surprise_removed = false;
>  +	ret = mwifiex_reinit_sw(adapter);
>  +	if (ret)
>  +		dev_err(&pdev->dev, "reinit failed: %d\n", ret);
>  +	else
>  +		mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__);
>  +}
>  +
>  +static const struct pci_error_handlers mwifiex_pcie_err_handler = {
>  +	.reset_prepare		= mwifiex_pcie_reset_prepare,
>  +	.reset_done		= mwifiex_pcie_reset_done,
>   };
>   
>   #ifdef CONFIG_PM_SLEEP

-- 
Cheers,
Stephen Rothwell

Powered by blists - more mailing lists