2009/5/6 Gwendal Grignou <gwendal@xxxxxxxxxx>: > - you can not access a PMP device from user space directly because > there is no file descriptor for it. > - however, libata stores a dump of PMP registers taken after every > reset in gscr structure of the ata_device structure that represent the > PMP in the kernel. You can modify libata to print the registers you > need. I add a `pmp_attach' function ata_port_operation, and call `sata_pmp_read' in that function. It works fine. But when I call `sata_pmp_read' in process context while another process is writing to disks, the kernel hangs (deadlock?). Is there any suggestion? I found that `sata_pmp_read' finally calls `ata_exec_internal_sg' to do the real work and 'ata_exec_internal_sg' takes ata_port->lock. BTW, why `sata_pmp_read' and `sata_pmp_write' aren't exported? jbin -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html