Hi, On 5/31/21 8:07 AM, Qiheng Lin wrote: > These function declarations in 'bios.h' are already marked extern, thus > their definition should not have the keyword. > > This quiets the following sparse warnings: > function 'uv_bios_get_master_nasid' with external linkage has definition > function 'uv_bios_get_heapsize' with external linkage has definition > function 'uv_bios_install_heap' with external linkage has definition > function 'uv_bios_obj_count' with external linkage has definition > function 'uv_bios_enum_objs' with external linkage has definition > function 'uv_bios_enum_ports' with external linkage has definition > function 'uv_bios_get_geoinfo' with external linkage has definition > function 'uv_bios_get_pci_topology' with external linkage has definition > > Signed-off-by: Qiheng Lin <linqiheng@xxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > arch/x86/platform/uv/bios_uv.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/x86/platform/uv/bios_uv.c b/arch/x86/platform/uv/bios_uv.c > index bf31af3d32d6..7e7634c8be62 100644 > --- a/arch/x86/platform/uv/bios_uv.c > +++ b/arch/x86/platform/uv/bios_uv.c > @@ -172,55 +172,55 @@ int uv_bios_set_legacy_vga_target(bool decode, int domain, int bus) > (u64)decode, (u64)domain, (u64)bus, 0, 0); > } > > -extern s64 uv_bios_get_master_nasid(u64 size, u64 *master_nasid) > +s64 uv_bios_get_master_nasid(u64 size, u64 *master_nasid) > { > return uv_bios_call(UV_BIOS_EXTRA, 0, UV_BIOS_EXTRA_MASTER_NASID, 0, > size, (u64)master_nasid); > } > EXPORT_SYMBOL_GPL(uv_bios_get_master_nasid); > > -extern s64 uv_bios_get_heapsize(u64 nasid, u64 size, u64 *heap_size) > +s64 uv_bios_get_heapsize(u64 nasid, u64 size, u64 *heap_size) > { > return uv_bios_call(UV_BIOS_EXTRA, nasid, UV_BIOS_EXTRA_GET_HEAPSIZE, > 0, size, (u64)heap_size); > } > EXPORT_SYMBOL_GPL(uv_bios_get_heapsize); > > -extern s64 uv_bios_install_heap(u64 nasid, u64 heap_size, u64 *bios_heap) > +s64 uv_bios_install_heap(u64 nasid, u64 heap_size, u64 *bios_heap) > { > return uv_bios_call(UV_BIOS_EXTRA, nasid, UV_BIOS_EXTRA_INSTALL_HEAP, > 0, heap_size, (u64)bios_heap); > } > EXPORT_SYMBOL_GPL(uv_bios_install_heap); > > -extern s64 uv_bios_obj_count(u64 nasid, u64 size, u64 *objcnt) > +s64 uv_bios_obj_count(u64 nasid, u64 size, u64 *objcnt) > { > return uv_bios_call(UV_BIOS_EXTRA, nasid, UV_BIOS_EXTRA_OBJECT_COUNT, > 0, size, (u64)objcnt); > } > EXPORT_SYMBOL_GPL(uv_bios_obj_count); > > -extern s64 uv_bios_enum_objs(u64 nasid, u64 size, u64 *objbuf) > +s64 uv_bios_enum_objs(u64 nasid, u64 size, u64 *objbuf) > { > return uv_bios_call(UV_BIOS_EXTRA, nasid, UV_BIOS_EXTRA_ENUM_OBJECTS, > 0, size, (u64)objbuf); > } > EXPORT_SYMBOL_GPL(uv_bios_enum_objs); > > -extern s64 uv_bios_enum_ports(u64 nasid, u64 obj_id, u64 size, u64 *portbuf) > +s64 uv_bios_enum_ports(u64 nasid, u64 obj_id, u64 size, u64 *portbuf) > { > return uv_bios_call(UV_BIOS_EXTRA, nasid, UV_BIOS_EXTRA_ENUM_PORTS, > obj_id, size, (u64)portbuf); > } > EXPORT_SYMBOL_GPL(uv_bios_enum_ports); > > -extern s64 uv_bios_get_geoinfo(u64 nasid, u64 size, u64 *buf) > +s64 uv_bios_get_geoinfo(u64 nasid, u64 size, u64 *buf) > { > return uv_bios_call(UV_BIOS_GET_GEOINFO, nasid, (u64)buf, size, 0, 0); > } > EXPORT_SYMBOL_GPL(uv_bios_get_geoinfo); > > -extern s64 uv_bios_get_pci_topology(u64 size, u64 *buf) > +s64 uv_bios_get_pci_topology(u64 size, u64 *buf) > { > return uv_bios_call(UV_BIOS_GET_PCI_TOPOLOGY, (u64)buf, size, 0, 0, 0); > } >