From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751117AbcBZBth (ORCPT ); Thu, 25 Feb 2016 20:49:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39409 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750731AbcBZBtg (ORCPT ); Thu, 25 Feb 2016 20:49:36 -0500 Subject: Re: [REGRESSION] 8a3e33cf92c7 "ata: ahci: find eSATA ports and flag them as removable" changes userspace behavior To: Manuel Lauss References: <56CF35FA.1070500@redhat.com> Cc: Tejun Heo , Linux-IDE , Linux Kernel Mailing List From: Laura Abbott Message-ID: <56CFAF2E.4050001@redhat.com> Date: Thu, 25 Feb 2016 17:49:34 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/25/2016 11:09 AM, Manuel Lauss wrote: > On Thu, Feb 25, 2016 at 6:12 PM, Laura Abbott wrote: >> Hi, >> >> We received a bugzilla report >> https://bugzilla.redhat.com/show_bug.cgi?id=1310682 >> of partitions being automounted unexpectedly. Testing showed that >> 8a3e33cf92c7 ("ata: ahci: find eSATA ports and flag them as removable") was >> responsible. >> This seems to be classified as 'breaking' userspace given that this behavior >> results >> in partitions that were previously unmounted now being being mounted >> unwanted >> automatically which is unwanted behavior for the user. Can we revert this >> patch or >> give a fix to change this behavior? > > Can you test this? I think the old HPCP bit should just be ignored, > although windows does use it, i.e. when I enable hotplug capability > in the bios on my desktop it shows the "eject device" icon for a device > attached to the port on the motherboard, we probably can ignore it > on linux to not break all automounting distros. On my laptop, where > I care about this, it still works as intended. > > diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c > index 4029679..e029e3c 100644 > --- a/drivers/ata/libahci.c > +++ b/drivers/ata/libahci.c > @@ -1164,8 +1164,7 @@ static void ahci_port_init(struct device *dev, > struct ata_port *ap, > > /* mark esata ports */ > tmp = readl(port_mmio + PORT_CMD); > - if ((tmp & PORT_CMD_HPCP) || > - ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS))) > + if ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS)) > ap->pflags |= ATA_PFLAG_EXTERNAL; > } > At least one user reported that this fixed the issue and he said you could add Tested-by: Bob Schultz Thanks, Laura