cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-card.c ata-cbus.c ata-chipset.c ata-disk.c ata-disk.h ata-dma.c ata-isa.c ata-lowlevel.c ata-pci.c ata-pci.h ata-queue.c ata-raid.c ata-raid.h ata-usb.c ata_if.m atapi-cd.c atapi-cd.h atapi-fd.c ...

Jeff Roberson jroberson at jroberson.net
Fri Apr 11 03:34:56 UTC 2008


I have two problems with this patch.  First, it seems to break my amr 
device which is no longer able to probe disks.  Backing out this commit 
fixes the problem.

Secondly, with WITNESS enabled my console is full of the following 
errors on boot:

uma_zalloc_arg: zone "16" with the following non-sleepable locks held:^M
exclusive sleep mutex ATA state lock r = 0 (0xffffff0004117678) locked @ 
dev/ata
/ata-queue.c:194^M
exclusive sleep mutex ATA queue lock r = 0 (0xffffff00041176b0) locked @ 
dev/ata
/ata-queue.c:177^M
KDB: stack backtrace:^M
db_trace_self_wrapper() at db_trace_self_wrapper+0x27^M
kdb_backtrace() at kdb_backtrace+0x3e^M
witness_warn() at witness_warn+0x374^M
uma_zalloc_arg() at uma_zalloc_arg+0x3f^M
uma_zalloc() at uma_zalloc+0x20^M
malloc() at malloc+0x122^M
sysctl_add_oid() at sysctl_add_oid+0x11d^M
alloc_bounce_zone() at alloc_bounce_zone+0x204^M
bus_dma_tag_create() at bus_dma_tag_create+0x2d1^M
ata_dmaload() at ata_dmaload+0x341^M
ata_begin_transaction() at ata_begin_transaction+0x22f^M
ata_start() at ata_start+0x24c^M
ata_queue_request() at ata_queue_request+0x3da^M
ata_raid_rw() at ata_raid_rw+0x14b^M
ata_raid_adaptec_read_meta() at ata_raid_adaptec_read_meta+0x8a^M
ata_raid_read_metadata() at ata_raid_read_metadata+0x297^M
ata_raid_subdisk_attach() at ata_raid_subdisk_attach+0x57^M
DEVICE_ATTACH() at DEVICE_ATTACH+0x84^M
device_attach() at device_attach+0x3c^M
device_probe_and_attach() at device_probe_and_attach+0x10d^M
bus_generic_attach() at bus_generic_attach+0x23^M
ad_attach() at ad_attach+0x25f^M
DEVICE_ATTACH() at DEVICE_ATTACH+0x84^M
device_attach() at device_attach+0x3c^M
device_probe_and_attach() at device_probe_and_attach+0x10d^M
bus_generic_attach() at bus_generic_attach+0x23^M
ata_identify() at ata_identify+0x225^M
ata_boot_attach() at ata_boot_attach+0x54^M
run_interrupt_driven_config_hooks() at 
run_interrupt_driven_config_hooks+0x79^M
mi_startup() at mi_startup+0x11b^M

It's not legal to call bus_dma_tag_create with locks held.

Thanks,
Jeff

On Thu, 10 Apr 2008, Søren Schmidt wrote:

> sos         2008-04-10 13:05:05 UTC
>
>  FreeBSD src repository
>
>  Modified files:
>    sys/dev/ata          ata-all.c ata-all.h ata-card.c ata-cbus.c
>                         ata-chipset.c ata-disk.c ata-disk.h
>                         ata-dma.c ata-isa.c ata-lowlevel.c
>                         ata-pci.c ata-pci.h ata-queue.c
>                         ata-raid.c ata-raid.h ata-usb.c ata_if.m
>                         atapi-cd.c atapi-cd.h atapi-fd.c
>                         atapi-fd.h atapi-tape.c atapi-tape.h
>  Log:
>  Add experimental support for SATA Port Multipliers
>
>  Support is working on the Silicon Image SiI3124/3132.
>  Support is working on some AHCI chips but far from all.
>
>  Remember this is WIP, so test reports and (constructive) suggestions are welcome!
>
>  Revision  Changes    Path
>  1.282     +73 -57    src/sys/dev/ata/ata-all.c
>  1.129     +42 -25    src/sys/dev/ata/ata-all.h
>  1.41      +1 -1      src/sys/dev/ata/ata-card.c
>  1.26      +1 -1      src/sys/dev/ata/ata-cbus.c
>  1.213     +797 -266  src/sys/dev/ata/ata-chipset.c
>  1.208     +117 -48   src/sys/dev/ata/ata-disk.c
>  1.54      +1 -1      src/sys/dev/ata/ata-disk.h
>  1.151     +160 -132  src/sys/dev/ata/ata-dma.c
>  1.32      +1 -1      src/sys/dev/ata/ata-isa.c
>  1.81      +31 -33    src/sys/dev/ata/ata-lowlevel.c
>  1.124     +41 -40    src/sys/dev/ata/ata-pci.c
>  1.84      +1 -2      src/sys/dev/ata/ata-pci.h
>  1.70      +8 -3      src/sys/dev/ata/ata-queue.c
>  1.127     +1 -1      src/sys/dev/ata/ata-raid.c
>  1.47      +1 -1      src/sys/dev/ata/ata-raid.h
>  1.8       +1 -2      src/sys/dev/ata/ata-usb.c
>  1.8       +1 -1      src/sys/dev/ata/ata_if.m
>  1.197     +4 -9      src/sys/dev/ata/atapi-cd.c
>  1.48      +1 -1      src/sys/dev/ata/atapi-cd.h
>  1.112     +3 -7      src/sys/dev/ata/atapi-fd.c
>  1.28      +1 -1      src/sys/dev/ata/atapi-fd.h
>  1.105     +5 -13     src/sys/dev/ata/atapi-tape.c
>  1.26      +1 -1      src/sys/dev/ata/atapi-tape.h
>


More information about the cvs-src mailing list