Author: marcel
Date: Sun Feb 13 19:26:51 2011
New Revision: 218662
URL: http://svn.freebsd.org/changeset/base/218662

Log:
  Use the preload_fetch_addr() and preload_fetch_size() convenience
  functions to obtain the address and size of the PCI vendor data.
  
  Sponsored by: Juniper Networks.

Modified:
  head/sys/dev/pci/pci.c

Modified: head/sys/dev/pci/pci.c
==============================================================================
--- head/sys/dev/pci/pci.c      Sun Feb 13 19:25:48 2011        (r218661)
+++ head/sys/dev/pci/pci.c      Sun Feb 13 19:26:51 2011        (r218662)
@@ -3056,15 +3056,20 @@ pci_resume(device_t dev)
 static void
 pci_load_vendor_data(void)
 {
-       caddr_t vendordata, info;
-
-       if ((vendordata = preload_search_by_type("pci_vendor_data")) != NULL) {
-               info = preload_search_info(vendordata, MODINFO_ADDR);
-               pci_vendordata = *(char **)info;
-               info = preload_search_info(vendordata, MODINFO_SIZE);
-               pci_vendordata_size = *(size_t *)info;
-               /* terminate the database */
-               pci_vendordata[pci_vendordata_size] = '\n';
+       caddr_t data;
+       void *ptr;
+       size_t sz;
+
+       data = preload_search_by_type("pci_vendor_data");
+       if (data != NULL) {
+               ptr = preload_fetch_addr(data);
+               sz = preload_fetch_size(data);
+               if (ptr != NULL && sz != 0) {
+                       pci_vendordata = ptr;
+                       pci_vendordata_size = sz;
+                       /* terminate the database */
+                       pci_vendordata[pci_vendordata_size] = '\n';
+               }
        }
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to