title: How to prevent "error: 'symbol' undeclared here" despite EXPORT_SYMBOL in a Linux kernel module?
body: <p>I'm embedding some driver into a Linux kernel when I get this error (I'm adding the device in the board file and registering it):</p>
  
  <pre><code>error: 'kxtf9_get_slave_descr' undeclared here (not in a function)
  </code></pre>
  
  <p>I located the function above in a driver file</p>
  
  <pre><code>struct ext_slave_descr *kxtf9_get_slave_descr(void)
  {
      return &amp;kxtf9_descr;
  }
  EXPORT_SYMBOL(kxtf9_get_slave_descr);
  </code></pre>
  
  <p>Shouldn't it made "visible" by EXPORT_SYMBOL?
  The C file containing the code above has no header file (I didn't write it, I just found it <a href="http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=drivers/misc/mpu3050/accel/kxtf9.c;h=ecf9e7dfd3d7830bb6a5c0b56831d27674cc7ad9;hb=a6b3e15aa680bea1021bcd668df2805cd652e85b" rel="noreferrer">here</a> and I'm implementing. They say it's tested so I assume an header is not needed?</p>
  
  <p>The rest of the code compiles perfectly (so it "sees" the code in the folder), and the file containing the code above compiles as well!</p>