title: What is kernel section mismatch?
body: <p>When compiling a kernel module, I got a WARNING with a note to add a compile option, <strong>CONFIG_DEBUG_SECTION_MISMATCH=y</strong>. It give me more detailed info about issue:</p>
  
  <pre><code>WARNING: \**\*path to module\***(.text+0x8d2): Section mismatch in reference from the function Pch_Spi_Enable_Bios_Wr() to the variable .devinit.data:ich9_pci_tbl.22939
  The function Pch_Spi_Enable_Bios_Wr() references
  the variable __devinitdata ich9_pci_tbl.22939.
  This is often because Pch_Spi_Enable_Bios_Wr lacks a __devinitdata
  annotation or the annotation of ich9_pci_tbl.22939 is wrong.
  </code></pre>
  
  <p>I could not find what exactly <strong>kernel section mismatch</strong> is, not to mention how to go about fixing it.</p>