Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Apr 2016 10:23:55 -0700
From:      John Baldwin <jhb@freebsd.org>
To:        src-committers@freebsd.org
Cc:        svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r298708 - in head/sys: dev/cardbus dev/pci mips/nlm powerpc/ofw sparc64/pci
Message-ID:  <1976035.cgz5COcGKZ@ralph.baldwin.cx>
In-Reply-To: <201604271631.u3RGVCjE001316@repo.freebsd.org>
References:  <201604271631.u3RGVCjE001316@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, April 27, 2016 04:31:12 PM John Baldwin wrote:
> Author: jhb
> Date: Wed Apr 27 16:31:12 2016
> New Revision: 298708
> URL: https://svnweb.freebsd.org/changeset/base/298708
> 
> Log:
>   Implement a PCI bus rescan method.
>   
>   Rescanning a PCI bus uses the following steps:
>   - Fetch the current set of child devices and save it in the 'devlist'
>     array.
>   - Allocate a parallel array 'unchanged' initalized with NULL pointers.
>   - Scan the bus checking each slot (and each function on slots with a
>     multifunction device).
>   - If a valid function is found, look for a matching device in the 'devlist'
>     array.  If a device is found, save the pointer in the 'unchanged' array.
>     If a device is not found, add a new device.
>   - After the scan has finished, walk the 'devlist' array deleting any
>     devices that do not have a matching pointer in the 'unchanged' array.
>   - Finally, fetch an updated set of child devices and explicitly attach any
>     devices that are not present in the 'unchanged' array.
>   
>   This builds on the previous changes to move subclass data management into
>   pci_alloc_devinfo(), pci_child_added(), and bus_child_deleted().
>   
>   Subclasses of the PCI bus use custom rescan logic explicitly override the
>   rescan method to disable rescans.
>   
>   Differential Revision:	https://reviews.freebsd.org/D6018

Argh, I thought for certain I had done a tinderbox build, but using
kobj_error_method breaks the build.  I will test a fix that adds a
null_rescan method instead and commit it shortly.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1976035.cgz5COcGKZ>