diff options
Diffstat (limited to 'src/arch/x86/smbios.c')
-rw-r--r-- | src/arch/x86/smbios.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index eebfd72079..967883a61e 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -1213,6 +1213,16 @@ static int smbios_generate_type9_from_devtree(struct device *dev, int *handle, dev->path.pci.devfn); } +int get_smbios_data(struct device *dev, int *handle, unsigned long *current) +{ + int len = 0; + + len += smbios_generate_type9_from_devtree(dev, handle, current); + len += smbios_generate_type41_from_devtree(dev, handle, current); + + return len; +} + static int smbios_walk_device_tree(struct device *tree, int *handle, unsigned long *current) { struct device *dev; @@ -1222,9 +1232,9 @@ static int smbios_walk_device_tree(struct device *tree, int *handle, unsigned lo if (dev->enabled && dev->ops && dev->ops->get_smbios_data) { printk(BIOS_INFO, "%s (%s)\n", dev_path(dev), dev_name(dev)); len += dev->ops->get_smbios_data(dev, handle, current); + } else { + len += get_smbios_data(dev, handle, current); } - len += smbios_generate_type9_from_devtree(dev, handle, current); - len += smbios_generate_type41_from_devtree(dev, handle, current); } return len; } |