Re: [PATCH] PCI: pciehp: Use ordered workqueue for HPC events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 01, 2014 at 03:47:12PM -0700, Sandeep Mann wrote:
> Using an ordered workqueue serializes processing of hotplug event. Processing
> an hotplug event for some devices can take a relatively "long" time, which
> means if a device is added and removed in quick succession (or due to flacky
> hardware), it can lead to multiple outstanding hotplug events. Processing
> these events concurrently can lead to unknown internal state and/or kernel
> panics.
> 
> Signed-off-by: Sandeep Mann <sandeep@xxxxxxxxxxxxxxx>

What's the status of this?  I see Rajat's ack, but there was a lot of
subsequent discussion, and I'm not sure whether there was a conclusion.

Given that, I'd like to see a bugzilla with the relevant background
(lspci -vv, dmesg log).  Also, shpchp_core.c has similar code, so I'd like
to see either a similar patch for it or an explanation of why that driver
doesn't need it.

So I'll drop this for now, pending these updates.

Bjorn

> ---
>  drivers/pci/hotplug/pciehp_hpc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
> index 42914e0..c4eedab 100644
> --- a/drivers/pci/hotplug/pciehp_hpc.c
> +++ b/drivers/pci/hotplug/pciehp_hpc.c
> @@ -681,7 +681,7 @@ static int pcie_init_slot(struct controller *ctrl)
>  	if (!slot)
>  		return -ENOMEM;
>  
> -	slot->wq = alloc_workqueue("pciehp-%u", 0, 0, PSN(ctrl));
> +	slot->wq = alloc_ordered_workqueue("pciehp-%u", 0, PSN(ctrl));
>  	if (!slot->wq)
>  		goto abort;
>  
> -- 
> 1.8.3.2
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux