Commit 6c9ddeb1 authored by Jesper Juhl's avatar Jesper Juhl Committed by Linus Torvalds

[PATCH] inlining errors in drivers/scsi/aic7xxx/aic79xx_osm.c

This patch fixes the following build error (in 2.6.8-rc2-mm1) when using
gcc 3.4.0

drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_dv_transition':
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3070: sorry, unimplemented: called from here
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3093: sorry, unimplemented: called from here
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3144: sorry, unimplemented: called from here
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3257: sorry, unimplemented: called from here
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3288: sorry, unimplemented: called from here
drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available
drivers/scsi/aic7xxx/aic79xx_osm.c:3317: sorry, unimplemented: called from here

It first removes a duplicate forward declaration of ahd_linux_dv_fallback
and then moves the function before its first use so inlining can succeed.
Signed-off-by: default avatarJesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e445e680
......@@ -513,9 +513,6 @@ static void ahd_linux_dv_su(struct ahd_softc *ahd,
struct scsi_cmnd *cmd,
struct ahd_devinfo *devinfo,
struct ahd_linux_target *targ);
static __inline int
ahd_linux_dv_fallback(struct ahd_softc *ahd,
struct ahd_devinfo *devinfo);
static int ahd_linux_fallback(struct ahd_softc *ahd,
struct ahd_devinfo *devinfo);
static __inline int ahd_linux_dv_fallback(struct ahd_softc *ahd,
......@@ -2915,6 +2912,19 @@ ahd_linux_dv_target(struct ahd_softc *ahd, u_int target_offset)
ahd_unlock(ahd, &s);
}
static __inline int
ahd_linux_dv_fallback(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
{
u_long s;
int retval;
ahd_lock(ahd, &s);
retval = ahd_linux_fallback(ahd, devinfo);
ahd_unlock(ahd, &s);
return (retval);
}
static void
ahd_linux_dv_transition(struct ahd_softc *ahd, struct scsi_cmnd *cmd,
struct ahd_devinfo *devinfo,
......@@ -3551,19 +3561,6 @@ ahd_linux_dv_su(struct ahd_softc *ahd, struct scsi_cmnd *cmd,
cmd->cmnd[4] = le | SSS_START;
}
static __inline int
ahd_linux_dv_fallback(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
{
u_long s;
int retval;
ahd_lock(ahd, &s);
retval = ahd_linux_fallback(ahd, devinfo);
ahd_unlock(ahd, &s);
return (retval);
}
static int
ahd_linux_fallback(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment