ibft: Fix finding IBFT ACPI table on UEFI
authorYinghai Lu <yinghai.lu@oracle.com>
Mon, 12 Dec 2011 20:39:14 +0000 (12:39 -0800)
committerKonrad Rzeszutek Wilk <konrad@kernel.org>
Tue, 13 Dec 2011 14:08:31 +0000 (09:08 -0500)
commit935a9fee51c945b8942be2d7b4bae069167b4886
tree2b69b5411125829b54b4f13a7350fdd4e112b61c
parent5611cc4572e889b62a7b4c72a413536bf6a9c416
ibft: Fix finding IBFT ACPI table on UEFI

Found one system with UEFI/iBFT, kernel does not detect the iBFT during
iscsi_ibft module loading.

Root cause: on x86 (UEFI), we are calling of find_ibft_region() much earlier
- specifically in setup_arch() before ACPI is enabled.

Try to split acpi checking code out and call that later

At that time ACPI iBFT already get permanent mapped with ioremap.
So isa_virt_to_bus() will get wrong phys from right virt address.
We could just skip that phys address printing.

For legacy one, print the found address early.

-v2: update comments and description according to Konrad.
-v3: fix problem about module use case that is found by Konrad.
-v4: use acpi_get_table() instead of acpi_table_parse() to handle module use case that is found by Konrad again..
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Konrad Rzeszutek Wilk <konrad@kernel.org>
drivers/firmware/iscsi_ibft.c
drivers/firmware/iscsi_ibft_find.c