Addresses in PxCLB and PxCLBU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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�����٥




[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux