Bug 15920 - Section mismatch in reference from the function dmar_ir_support() to the variable .init.data:dmar_tbl
Summary: Section mismatch in reference from the function dmar_ir_support() to the vari...
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: ACPI
Classification: Unclassified
Component: Config-Tables (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: acpi_config-tables
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-06 12:40 UTC by Dani Soufi
Modified: 2010-09-29 02:21 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.33.2
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Dani Soufi 2010-05-06 12:40:58 UTC
Latest working kernel version: N/A
Distribution: Gentoo
Hardware Environment: Toshiba Satellite L300-214

Software Environment:
gcc version 4.3.4 (Gentoo 4.3.4 p1.1, pie-10.1.5)
Binutils 2.18-r3
Grub (GNU GRUB 0.97)
Architecture: x86_64

Description:
During the build of kernel 2.6.33.2, I receive a section mismatch warning. After
re-compiling with CONFIG_DEBUG_SECTION_MISMATCH=y, I get those 3 warnings:

  CC      drivers/pci/pci-acpi.o
  LD      drivers/pci/built-in.o
WARNING: drivers/pci/built-in.o(.text+0xf50d): Section mismatch in reference
from the function dmar_ir_support() to the variable .init.data:dmar_tbl
The function dmar_ir_support() references
the variable __initdata dmar_tbl.
This is often because dmar_ir_support lacks a __initdata 
annotation or the annotation of dmar_tbl is wrong.

  LD      drivers/usb/storage/usb-storage.o
  LD      drivers/usb/storage/built-in.o
  LD      drivers/usb/built-in.o
  LD      drivers/built-in.o
WARNING: drivers/built-in.o(.text+0xf50d): Section mismatch in reference from
the function dmar_ir_support() to the variable .init.data:dmar_tbl
The function dmar_ir_support() references
the variable __initdata dmar_tbl.
This is often because dmar_ir_support lacks a __initdata 
annotation or the annotation of dmar_tbl is wrong.

  LD      vmlinux.o
  MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x28e8d5): Section mismatch in reference from the
function dmar_ir_support() to the variable .init.data:dmar_tbl
The function dmar_ir_support() references
the variable __initdata dmar_tbl.
This is often because dmar_ir_support lacks a __initdata 
annotation or the annotation of dmar_tbl is wrong.

  GEN     .version

I did some googling and looks like there is a solution/workaround by modifying
dmar.c and intel-iommu.h as the attached url describes.
Comment 1 Dani Soufi 2010-05-06 12:42:58 UTC
This url: https://patchwork.kernel.org/patch/88561/
Comment 2 Zhang Rui 2010-05-12 06:21:21 UTC
right, this seems to be the right solution.
Close this bug as the patch is already available.
CC Jesse.
Comment 3 Len Brown 2010-09-29 02:21:20 UTC
commit 0b8973a81876d90f916507ac40d1381068dc986a
Author: Luck, Tony <tony.luck@intel.com>
Date:   Wed Dec 16 22:59:29 2009 +0000

    intel-iommu: Fix section mismatch dmar_ir_support() uses dmar_tbl.

shipped in v2.6.32-7810-g0b8973a

Note You need to log in before you can comment on or make changes to this bug.