Hi, I'm working with the registers in an AHCI controller. The memory address contained in PxCLB and PxCLBU (if 64-bit addressing is supported): what kind of address are they? Currently, when I get the address and place it into a pointer of struct ahci_cmd_hdr and try to dereference, my VM locks and then reboots. What am I doing incorrectly? Basically, I have this: void __iomem * pbase = ahci_port_base((struct ata_port*)); struct ahci_cmd_hdr *cmd_hdr = NULL; cmd_hdr = (struct ahci_cmd_hdr*)(u64) ((u64)(*(temp + PORT_LST_ADDR_HI)) << 32 | *temp); pr_info("cmd_hdr is %p\n", cmd_hdr); pr_info("cmd_hdr->opts is %d\n", cmd_hdr->opts); /* opts is __le32 */ At the last line above my VM hangs and reboots. The memory address is something like 0x0000000037900000. This address makes me think that I simply can't dereference it but I'm quite new to this and I don't know what I should do. I'd appreciate any help even if that's a pointer (no pun intended) to a more appropriate forum. Thanks, Andy��.n��������+%������w��{.n�����{��'^�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥