[PATCH] powerpc/pci: Improve device hotplug initialization

Guenter Roeck linux at roeck-us.net
Mon Jun 3 14:11:42 EST 2013


On Mon, Jun 03, 2013 at 10:28:47AM +0800, Chen Yuanquan-B41889 wrote:
> On 06/01/2013 09:58 PM, Guenter Roeck wrote:
> >On Fri, May 31, 2013 at 03:44:07PM +1000, Benjamin Herrenschmidt wrote:
> >>On Thu, 2013-05-30 at 22:14 -0700, Guenter Roeck wrote:
> >>>On Wed, May 29, 2013 at 05:30:41PM +0800, Chen Yuanquan-B41889 wrote:
> >>>>On 05/29/2013 01:35 AM, Guenter Roeck wrote:
> >>>>>bios_add_device(). Drop explicit calls to pcibios_setup_device();
> >>>>>this makes pcibios_setup_bus_devices() a noop function which could
> >>>>>eve
> >>>>Yeah, it's more reasonable to do the irq and DMA related initialization
> >>>>in one code path for all devices.
> >>>>
> >>>Any comments / feedback on the code itself ?
> >>Sorry, I haven't had a chance to review it yet, I'm fairly bogged down
> >>at the moment. I want to tread carefully because the previous iteration
> >>of changing that stuff did break a few platforms in the end.
> >>
> >Hi Ben,
> >
> >the comment was actuially directed towards Yuanquan.
> >
> >No problem, take your time. I did my best to test it, but I agree that this is a
> >critical area of the code, and it would be desirable to get additional scrutiny
> >and test feedback.
> >
> >The code has been running in our system (P2020 and P5040) for several months.
> >I was preparing a patch for upstream submission when I noticed commit 37f02195b.
> >After testing ithis commit, I noticed the problems with it and wrote this patch,
> >which aligns the code with our initial patch. I tested it as good as I could on
> >our systems as well as with a P5040 evaluation board and an Intel GE PCIe
> >card.
> >
> >Thanks,
> >Guenter
> >
> 
> Hi Guenter,
> 
> Your patch makes sure the initialization of DMA and irq in one code
> path and also
> avoids the initialization called two times(in pci bus scanning and
> pci_enable_device()
> in device driver) for no-hot-plugged pci device. It's much more reasonable!
> 
> I don't know why you also remove the function "set_dev_node()" ? As
> I know, the
> function just be called here. I think it should remain in your new function
> pcibios_add_device().
> 
pcibios_add_device() is (only) called from pci_device_add(),
which already calls set_dev_node().

Guenter


More information about the Linuxppc-dev mailing list