Re: [PATCH 0/9] PCI: Eliminate race conditions between hotplug and sysfs rescan/remove (Was: Re: [PATCH v2 04/10] PCI: Destroy pci dev only once)

2014-01-15 Thread Bjorn Helgaas
On Fri, Jan 10, 2014 at 03:20:44PM +0100, Rafael J. Wysocki wrote: > [Cc: adding linux-scsi for the MPT changes, Ben for powerpc, Matthew for > platform/x86 and Konrad for Xen] > > On Friday, December 06, 2013 02:21:50 AM Rafael J. Wysocki wrote: > > [...] > > > > > OK > > > > To be a bit mor

[PATCH] PCI / remove: Check parent kobject in pci_destroy_dev() (was: Re: [PATCH v2 04/10] PCI: Destroy pci dev only once)

2014-01-12 Thread Rafael J. Wysocki
On Saturday, December 07, 2013 02:27:51 AM Rafael J. Wysocki wrote: > On Thursday, December 05, 2013 10:52:36 PM Yinghai Lu wrote: > > On Mon, Dec 2, 2013 at 6:49 AM, Rafael J. Wysocki > > wrote: > > > > > > Scenario 5: pci_stop_and_remove_bus_device() is run concurrently > > > for a device and

[PATCH 0/9] PCI: Eliminate race conditions between hotplug and sysfs rescan/remove (Was: Re: [PATCH v2 04/10] PCI: Destroy pci dev only once)

2014-01-10 Thread Rafael J. Wysocki
[Cc: adding linux-scsi for the MPT changes, Ben for powerpc, Matthew for platform/x86 and Konrad for Xen] On Friday, December 06, 2013 02:21:50 AM Rafael J. Wysocki wrote: [...] > > OK > > To be a bit more constructive, as the next step I'd try to use > pci_remove_rescan_mutex to serialize al

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-09 Thread Ethan Zhao
On Tue, Dec 10, 2013 at 3:08 AM, Greg Kroah-Hartman wrote: > On Mon, Dec 09, 2013 at 11:24:04PM +0800, Ethan Zhao wrote: >> On Sun, Dec 8, 2013 at 11:50 AM, Greg Kroah-Hartman >> wrote: >> > On Sat, Dec 07, 2013 at 07:31:21PM -0800, Yinghai Lu wrote: >> >> [+ GregKH] >> >> >> >> On Fri, Dec 6, 20

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-09 Thread Greg Kroah-Hartman
On Mon, Dec 09, 2013 at 11:24:04PM +0800, Ethan Zhao wrote: > On Sun, Dec 8, 2013 at 11:50 AM, Greg Kroah-Hartman > wrote: > > On Sat, Dec 07, 2013 at 07:31:21PM -0800, Yinghai Lu wrote: > >> [+ GregKH] > >> > >> On Fri, Dec 6, 2013 at 5:27 PM, Rafael J. Wysocki > >> wrote: > >> > On Thursday, D

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-09 Thread Ethan Zhao
On Sun, Dec 8, 2013 at 11:50 AM, Greg Kroah-Hartman wrote: > On Sat, Dec 07, 2013 at 07:31:21PM -0800, Yinghai Lu wrote: >> [+ GregKH] >> >> On Fri, Dec 6, 2013 at 5:27 PM, Rafael J. Wysocki wrote: >> > On Thursday, December 05, 2013 10:52:36 PM Yinghai Lu wrote: >> >> On Mon, Dec 2, 2013 at 6:49

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-07 Thread Greg Kroah-Hartman
On Sat, Dec 07, 2013 at 07:31:21PM -0800, Yinghai Lu wrote: > [+ GregKH] > > On Fri, Dec 6, 2013 at 5:27 PM, Rafael J. Wysocki wrote: > > On Thursday, December 05, 2013 10:52:36 PM Yinghai Lu wrote: > >> On Mon, Dec 2, 2013 at 6:49 AM, Rafael J. Wysocki > >> wrote: > >> > > >> > Scenario 5: pci

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-07 Thread Yinghai Lu
[+ GregKH] On Fri, Dec 6, 2013 at 5:27 PM, Rafael J. Wysocki wrote: > On Thursday, December 05, 2013 10:52:36 PM Yinghai Lu wrote: >> On Mon, Dec 2, 2013 at 6:49 AM, Rafael J. Wysocki wrote: >> > >> > Scenario 5: pci_stop_and_remove_bus_device() is run concurrently >> > for a device and its pa

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-06 Thread Rafael J. Wysocki
On Thursday, December 05, 2013 10:52:36 PM Yinghai Lu wrote: > On Mon, Dec 2, 2013 at 6:49 AM, Rafael J. Wysocki wrote: > > > > Scenario 5: pci_stop_and_remove_bus_device() is run concurrently > > for a device and its parent bridge via remove_callback(). > > > > In that case both code paths at

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-05 Thread Yinghai Lu
On Mon, Dec 2, 2013 at 6:49 AM, Rafael J. Wysocki wrote: > > Scenario 5: pci_stop_and_remove_bus_device() is run concurrently > for a device and its parent bridge via remove_callback(). > > In that case both code paths attempt to acquire > pci_remove_rescan_mutex. If the child device remova

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-05 Thread Yinghai Lu
On Thu, Dec 5, 2013 at 5:21 PM, Rafael J. Wysocki wrote: >> >> The use-after-free problems *sound* like a reference counting issue. >> Yinghai's patch [1] should fix some of this; how much is left after >> that? >> >> [1] >> http://lkml.kernel.org/r/1385851238-21085-4-git-send-email-ying...@kerne

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-05 Thread Rafael J. Wysocki
On Thursday, December 05, 2013 03:40:39 PM Bjorn Helgaas wrote: > On Mon, Dec 2, 2013 at 7:49 AM, Rafael J. Wysocki wrote: > > ... > > From: Rafael J. Wysocki > > Subject: PCI / hotplug / ACPI: Fix concurrency problems related to device > > removal > > > > The following are concurrency problems

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-05 Thread Bjorn Helgaas
On Mon, Dec 2, 2013 at 7:49 AM, Rafael J. Wysocki wrote: > ... > From: Rafael J. Wysocki > Subject: PCI / hotplug / ACPI: Fix concurrency problems related to device > removal > > The following are concurrency problems related to the PCI device > removal code in pci-sysfs.c and in ACPIPHP present

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-02 Thread Rafael J. Wysocki
On Monday, December 02, 2013 02:29:46 AM Rafael J. Wysocki wrote: > On Sunday, December 01, 2013 02:24:33 AM Rafael J. Wysocki wrote: > > On Saturday, November 30, 2013 02:27:15 PM Yinghai Lu wrote: > > > On Sat, Nov 30, 2013 at 1:37 PM, Rafael J. Wysocki > > > wrote: > > > > On Saturday, Novembe

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-12-01 Thread Rafael J. Wysocki
On Sunday, December 01, 2013 02:24:33 AM Rafael J. Wysocki wrote: > On Saturday, November 30, 2013 02:27:15 PM Yinghai Lu wrote: > > On Sat, Nov 30, 2013 at 1:37 PM, Rafael J. Wysocki > > wrote: > > > On Saturday, November 30, 2013 01:31:33 AM Rafael J. Wysocki wrote: > > >> On Saturday, November

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-30 Thread Rafael J. Wysocki
On Saturday, November 30, 2013 02:27:15 PM Yinghai Lu wrote: > On Sat, Nov 30, 2013 at 1:37 PM, Rafael J. Wysocki wrote: > > On Saturday, November 30, 2013 01:31:33 AM Rafael J. Wysocki wrote: > >> On Saturday, November 30, 2013 12:45:55 AM Rafael J. Wysocki wrote: > >> > On Saturday, November 30,

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-30 Thread Yinghai Lu
On Sat, Nov 30, 2013 at 1:37 PM, Rafael J. Wysocki wrote: > On Saturday, November 30, 2013 01:31:33 AM Rafael J. Wysocki wrote: >> On Saturday, November 30, 2013 12:45:55 AM Rafael J. Wysocki wrote: >> > On Saturday, November 30, 2013 12:38:26 AM Rafael J. Wysocki wrote: >> > > On Tuesday, Novembe

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-30 Thread Rafael J. Wysocki
On Saturday, November 30, 2013 01:31:33 AM Rafael J. Wysocki wrote: > On Saturday, November 30, 2013 12:45:55 AM Rafael J. Wysocki wrote: > > On Saturday, November 30, 2013 12:38:26 AM Rafael J. Wysocki wrote: > > > On Tuesday, November 26, 2013 06:26:54 PM Yinghai Lu wrote: > > > > On Tue, Nov 26,

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-29 Thread Rafael J. Wysocki
On Saturday, November 30, 2013 12:45:55 AM Rafael J. Wysocki wrote: > On Saturday, November 30, 2013 12:38:26 AM Rafael J. Wysocki wrote: > > On Tuesday, November 26, 2013 06:26:54 PM Yinghai Lu wrote: > > > On Tue, Nov 26, 2013 at 5:24 PM, Rafael J. Wysocki > > > wrote: > > > > > > > > So assume

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-29 Thread Rafael J. Wysocki
On Saturday, November 30, 2013 12:38:26 AM Rafael J. Wysocki wrote: > On Tuesday, November 26, 2013 06:26:54 PM Yinghai Lu wrote: > > On Tue, Nov 26, 2013 at 5:24 PM, Rafael J. Wysocki > > wrote: > > > > > > So assume pci_destroy_dev() is called twice in parallel for the same dev > > > by two dif

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-29 Thread Rafael J. Wysocki
On Tuesday, November 26, 2013 06:26:54 PM Yinghai Lu wrote: > On Tue, Nov 26, 2013 at 5:24 PM, Rafael J. Wysocki wrote: > > > > So assume pci_destroy_dev() is called twice in parallel for the same dev > > by two different threads. Thread 1 does the atomic_inc_and_test() and > > finds that it is O

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-26 Thread Yinghai Lu
On Tue, Nov 26, 2013 at 5:24 PM, Rafael J. Wysocki wrote: > > So assume pci_destroy_dev() is called twice in parallel for the same dev > by two different threads. Thread 1 does the atomic_inc_and_test() and > finds that it is OK to do the device_del() and put_device() which causes > the device ob

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-26 Thread Rafael J. Wysocki
On Tuesday, November 26, 2013 12:13:50 PM Yinghai Lu wrote: > On Tue, Nov 26, 2013 at 11:34 AM, Yinghai Lu wrote: > > On Mon, Nov 25, 2013 at 7:38 PM, Bjorn Helgaas wrote: > >> On Mon, Nov 25, 2013 at 6:28 PM, Yinghai Lu wrote: > >>> Mutliple removing via /sys will call pci_destroy_dev two times

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-26 Thread Rafael J. Wysocki
On Tuesday, November 26, 2013 11:34:24 AM Yinghai Lu wrote: > On Mon, Nov 25, 2013 at 7:38 PM, Bjorn Helgaas wrote: > > On Mon, Nov 25, 2013 at 6:28 PM, Yinghai Lu wrote: > >> Mutliple removing via /sys will call pci_destroy_dev two times. > >> > >> | When concurent removing pci devices which are

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-26 Thread Yinghai Lu
On Tue, Nov 26, 2013 at 11:34 AM, Yinghai Lu wrote: > On Mon, Nov 25, 2013 at 7:38 PM, Bjorn Helgaas wrote: >> On Mon, Nov 25, 2013 at 6:28 PM, Yinghai Lu wrote: >>> Mutliple removing via /sys will call pci_destroy_dev two times. >>> >>> | When concurent removing pci devices which are in the sam

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-26 Thread Yinghai Lu
On Mon, Nov 25, 2013 at 7:38 PM, Bjorn Helgaas wrote: > On Mon, Nov 25, 2013 at 6:28 PM, Yinghai Lu wrote: >> Mutliple removing via /sys will call pci_destroy_dev two times. >> >> | When concurent removing pci devices which are in the same pci subtree >> | via sysfs, such as: >> | echo -n 1 > /sy

Re: [PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-25 Thread Bjorn Helgaas
On Mon, Nov 25, 2013 at 6:28 PM, Yinghai Lu wrote: > Mutliple removing via /sys will call pci_destroy_dev two times. > > | When concurent removing pci devices which are in the same pci subtree > | via sysfs, such as: > | echo -n 1 > /sys/bus/pci/devices/\:10\:00.0/remove ; echo -n 1 > > | /sys

[PATCH v2 04/10] PCI: Destroy pci dev only once

2013-11-25 Thread Yinghai Lu
Mutliple removing via /sys will call pci_destroy_dev two times. | When concurent removing pci devices which are in the same pci subtree | via sysfs, such as: | echo -n 1 > /sys/bus/pci/devices/\:10\:00.0/remove ; echo -n 1 > | /sys/bus/pci/devices/\:1a\:01.0/remove | (1a:01.0 device is dow