|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/EFI: simplify PCI option ROM retrieval
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1359976226 -3600
# Node ID ff77e84ddfdcd5ab93078d9ee6af7b6c60577408
# Parent de6160ccaf9db30b186153ff6b89652ff86ee476
x86/EFI: simplify PCI option ROM retrieval
While putting together the kernel side of this I realized that c/s
26397:d9c7b82aa7b1 went a little too far in requiring a buffer for the
option ROM contents - all that is really needed is handing Dom0
physical address and size of the data block.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r de6160ccaf9d -r ff77e84ddfdc xen/arch/x86/efi/runtime.c
--- a/xen/arch/x86/efi/runtime.c Mon Feb 04 12:08:15 2013 +0100
+++ b/xen/arch/x86/efi/runtime.c Mon Feb 04 12:10:26 2013 +0100
@@ -189,16 +189,9 @@ int efi_get_info(uint32_t idx, union xen
info->pci_rom.vendor == ent->vendor &&
info->pci_rom.devid == ent->devid )
{
- int rc = 0;
-
- if ( info->pci_rom.size < ent->size )
- rc = -ENOSPC;
- else if ( copy_to_guest(info->pci_rom.data,
- ent->data, ent->size) )
- rc = -EFAULT;
+ info->pci_rom.address = __pa(ent->data);
info->pci_rom.size = ent->size;
-
- return rc;
+ return 0;
}
return -ESRCH;
}
diff -r de6160ccaf9d -r ff77e84ddfdc xen/include/public/platform.h
--- a/xen/include/public/platform.h Mon Feb 04 12:08:15 2013 +0100
+++ b/xen/include/public/platform.h Mon Feb 04 12:10:26 2013 +0100
@@ -274,9 +274,9 @@ struct xenpf_firmware_info {
uint8_t devfn;
uint16_t vendor;
uint16_t devid;
- /* IN/OUT variables */
+ /* OUT variables */
+ uint64_t address;
xen_ulong_t size;
- XEN_GUEST_HANDLE(void) data;
} pci_rom;
} efi_info; /* XEN_FW_EFI_INFO */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |