diff options
| author | Nicolas Pitre <nico@cam.org> | 2005-10-17 17:03:19 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-11-06 17:12:57 -0500 |
| commit | fb0258730ad554db531f12fc1c3d5a5234fe52a4 (patch) | |
| tree | 3a11c374d9a849dfbffe72ce0b529079d95fba68 /include/linux/mtd | |
| parent | d574504114753f52d8d2a8a0f186d2a5fcd80789 (diff) | |
[MTD] Don't let gcc inline functions marked __xipram
If they get inlined into non __xipram functions we're screwed.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/xip.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/include/linux/mtd/xip.h b/include/linux/mtd/xip.h index 7b7deef6b180..863fa5a1d24e 100644 --- a/include/linux/mtd/xip.h +++ b/include/linux/mtd/xip.h | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | * it under the terms of the GNU General Public License version 2 as | 12 | * it under the terms of the GNU General Public License version 2 as |
| 13 | * published by the Free Software Foundation. | 13 | * published by the Free Software Foundation. |
| 14 | * | 14 | * |
| 15 | * $Id: xip.h,v 1.2 2004/12/01 15:49:10 nico Exp $ | 15 | * $Id: xip.h,v 1.4 2005/10/17 21:03:16 nico Exp $ |
| 16 | */ | 16 | */ |
| 17 | 17 | ||
| 18 | #ifndef __LINUX_MTD_XIP_H__ | 18 | #ifndef __LINUX_MTD_XIP_H__ |
| @@ -23,19 +23,19 @@ | |||
| 23 | #ifdef CONFIG_MTD_XIP | 23 | #ifdef CONFIG_MTD_XIP |
| 24 | 24 | ||
| 25 | /* | 25 | /* |
| 26 | * Function that are modifying the flash state away from array mode must | ||
| 27 | * obviously not be running from flash. The __xipram is therefore marking | ||
| 28 | * those functions so they get relocated to ram. | ||
| 29 | */ | ||
| 30 | #define __xipram __attribute__ ((__section__ (".data"))) | ||
| 31 | |||
| 32 | /* | ||
| 33 | * We really don't want gcc to guess anything. | 26 | * We really don't want gcc to guess anything. |
| 34 | * We absolutely _need_ proper inlining. | 27 | * We absolutely _need_ proper inlining. |
| 35 | */ | 28 | */ |
| 36 | #include <linux/compiler.h> | 29 | #include <linux/compiler.h> |
| 37 | 30 | ||
| 38 | /* | 31 | /* |
| 32 | * Function that are modifying the flash state away from array mode must | ||
| 33 | * obviously not be running from flash. The __xipram is therefore marking | ||
| 34 | * those functions so they get relocated to ram. | ||
| 35 | */ | ||
| 36 | #define __xipram noinline __attribute__ ((__section__ (".data"))) | ||
| 37 | |||
| 38 | /* | ||
| 39 | * Each architecture has to provide the following macros. They must access | 39 | * Each architecture has to provide the following macros. They must access |
| 40 | * the hardware directly and not rely on any other (XIP) functions since they | 40 | * the hardware directly and not rely on any other (XIP) functions since they |
| 41 | * won't be available when used (flash not in array mode). | 41 | * won't be available when used (flash not in array mode). |
