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

[Xen-devel] [PATCH] x86/EFI: simplify PCI option retrieval


  • To: "xen-devel" <xen-devel@xxxxxxxxxxxxx>
  • From: "Jan Beulich" <JBeulich@xxxxxxxx>
  • Date: Tue, 22 Jan 2013 14:05:58 +0000
  • Delivery-date: Tue, 22 Jan 2013 14:06:21 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

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>

--- a/xen/arch/x86/efi/runtime.c
+++ b/xen/arch/x86/efi/runtime.c
@@ -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;
     }
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -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 */
 



Attachment: x86-EFI-PCI-ROMs-adjust.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.