svn commit: r271201 - head/sys/dev/ahci
Bryan Drewery
bdrewery at FreeBSD.org
Fri Sep 26 00:18:20 UTC 2014
This drove me crazy for the past few days!
https://lists.freebsd.org/pipermail/freebsd-current/2014-September/052215.html
Not sure about the first trace there, but the others I encountered were
due to this not being fixed yet. smh@ tracked the ordering down and then
we found this. I couldn't try a newer build easily since my system would
panic on just buildworld :)
On 9/6/2014 1:20 PM, Warner Losh wrote:
> Author: imp
> Date: Sat Sep 6 18:20:50 2014
> New Revision: 271201
> URL: http://svnweb.freebsd.org/changeset/base/271201
>
> Log:
> Restore order of interrupt setup. Minor problems can result by
> setting up the interrupts too early:
>
> Reviewed by: mav@
> Sponsored by: Netflix
>
> Modified:
> head/sys/dev/ahci/ahci.c
> head/sys/dev/ahci/ahci_pci.c
>
> Modified: head/sys/dev/ahci/ahci.c
> ==============================================================================
> --- head/sys/dev/ahci/ahci.c Sat Sep 6 18:08:21 2014 (r271200)
> +++ head/sys/dev/ahci/ahci.c Sat Sep 6 18:20:50 2014 (r271201)
> @@ -229,6 +229,15 @@ ahci_attach(device_t dev)
>
> ahci_ctlr_setup(dev);
>
> + /* Setup interrupts. */
> + if (ahci_setup_interrupt(dev)) {
> + bus_dma_tag_destroy(ctlr->dma_tag);
> + bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid,
> + ctlr->r_mem);
> + rman_fini(&ctlr->sc_iomem);
> + return ENXIO;
> + }
> +
> i = 0;
> for (u = ctlr->ichannels; u != 0; u >>= 1)
> i += (u & 1);
>
> Modified: head/sys/dev/ahci/ahci_pci.c
> ==============================================================================
> --- head/sys/dev/ahci/ahci_pci.c Sat Sep 6 18:08:21 2014 (r271200)
> +++ head/sys/dev/ahci/ahci_pci.c Sat Sep 6 18:20:50 2014 (r271201)
> @@ -417,13 +417,6 @@ ahci_pci_attach(device_t dev)
> ctlr->numirqs = 1;
> }
>
> - if (ahci_setup_interrupt(dev)) {
> - if (ctlr->msi)
> - pci_release_msi(dev);
> - bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem);
> - return ENXIO;
> - }
> -
> error = ahci_attach(dev);
> if (error != 0)
> if (ctlr->msi)
>
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20140925/96bd613b/attachment.sig>
More information about the svn-src-all
mailing list