Subject: Re: linux-next: manual merge of the usb tree with the usb.current tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 30 Apr 2018 11:34:10 +1000

Hi all,

On Mon, 23 Apr 2018 13:04:44 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the usb tree got a conflict in:
> 
>   drivers/usb/core/hcd.c
> 
> between commit:
> 
>   63cb03f5c11e ("usb: core: split usb_phy_roothub_{init,alloc}")
> 
> from the usb.current tree and commit:
> 
>   bc40f5341741 ("USB: core: hcd: drop support for legacy phys")
> 
> from the usb tree.
> 
> I fixed it up (see below - though I am not sure what happens to the
> phy_roothub allocation when usb_phy_roothub_init fails) 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/usb/core/hcd.c
> index 0a42c5df3c0f,ac5bcf449d7d..000000000000
> --- a/drivers/usb/core/hcd.c
> +++ b/drivers/usb/core/hcd.c
> @@@ -2742,35 -2740,11 +2743,15 @@@ int usb_add_hcd(struct usb_hcd *hcd
>   	int retval;
>   	struct usb_device *rhdev;
>   
> - 	if (IS_ENABLED(CONFIG_USB_PHY) && !hcd->skip_phy_initialization) {
> - 		struct usb_phy *phy = usb_get_phy_dev(hcd->self.sysdev, 0);
> - 
> - 		if (IS_ERR(phy)) {
> - 			retval = PTR_ERR(phy);
> - 			if (retval == -EPROBE_DEFER)
> - 				return retval;
> - 		} else {
> - 			retval = usb_phy_init(phy);
> - 			if (retval) {
> - 				usb_put_phy(phy);
> - 				return retval;
> - 			}
> - 			hcd->usb_phy = phy;
> - 			hcd->remove_phy = 1;
> - 		}
> - 	}
> - 
>   	if (!hcd->skip_phy_initialization && usb_hcd_is_primary_hcd(hcd)) {
>  -		hcd->phy_roothub = usb_phy_roothub_init(hcd->self.sysdev);
>  +		hcd->phy_roothub = usb_phy_roothub_alloc(hcd->self.sysdev);
> - 		if (IS_ERR(hcd->phy_roothub)) {
> - 			retval = PTR_ERR(hcd->phy_roothub);
> - 			goto err_phy_roothub_alloc;
> - 		}
> + 		if (IS_ERR(hcd->phy_roothub))
> + 			return PTR_ERR(hcd->phy_roothub);
>   
>  +		retval = usb_phy_roothub_init(hcd->phy_roothub);
>  +		if (retval)
> - 			goto err_phy_roothub_alloc;
> ++			return retval;
>  +
>   		retval = usb_phy_roothub_power_on(hcd->phy_roothub);
>   		if (retval)
>   			goto err_usb_phy_roothub_power_on;

This is now a conflict between the battery tree (since it merged the
usb tree) and Linus' tree (since it merged the usb.current tree).

-- 
Cheers,
Stephen Rothwell