Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c
Hi, >On 8/23/07, Takashi Iwai <[EMAIL PROTECTED]> wrote: > At Wed, 22 Aug 2007 22:23:03 +0200, > Mariusz Kozlowski wrote: > > > > Hello, > > > > This is from x86_32 with gcc 3.4.6: > > > > CC [M] sound/pci/hda/hda_codec.o > > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free': > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed > > in > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from > > here > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed > > in > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from > > here > > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1 > > make[2]: *** [sound/pci/hda] Error 2 > > make[1]: *** [sound/pci] Error 2 > > make: *** [sound] Error 2 > > Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x > specific problem. Does the patch below fix? > > > Taksahi > > diff -r db9001b20d29 pci/hda/hda_codec.c > --- a/pci/hda/hda_codec.c Wed Aug 22 14:19:45 2007 +0200 > +++ b/pci/hda/hda_codec.c Wed Aug 22 23:06:00 2007 +0200 > @@ -514,7 +514,7 @@ static int read_widget_caps(struct hda_c > > static void init_hda_cache(struct hda_cache_rec *cache, > unsigned int record_size); > -static inline void free_hda_cache(struct hda_cache_rec *cache); > +static void free_hda_cache(struct hda_cache_rec *cache); > > /* > * codec destructor > @@ -707,7 +707,7 @@ static void __devinit init_hda_cache(str > cache->record_size = record_size; > } > > -static inline void free_hda_cache(struct hda_cache_rec *cache) > +static void free_hda_cache(struct hda_cache_rec *cache) > { > kfree(cache->buffer); > } How about this one: diff -uprN linux/sound/pci/hda/hda_codec.c linux.new/sound/pci/hda/hda_codec.c --- linux/sound/pci/hda/hda_codec.c 2007-08-30 09:27:42.0 +0800 +++ linux.new/sound/pci/hda/hda_codec.c 2007-08-30 09:27:50.0 +0800 @@ -514,7 +514,11 @@ static int read_widget_caps(struct hda_c static void init_hda_cache(struct hda_cache_rec *cache, unsigned int record_size); -static inline void free_hda_cache(struct hda_cache_rec *cache); + +static inline void free_hda_cache(struct hda_cache_rec *cache) +{ + kfree(cache->buffer); +} /* * codec destructor @@ -707,10 +711,6 @@ static void __devinit init_hda_cache(str cache->record_size = record_size; } -static inline void free_hda_cache(struct hda_cache_rec *cache) -{ - kfree(cache->buffer); -} /* query the hash. allocate an entry if not found. */ static struct hda_cache_head *get_alloc_hash(struct hda_cache_rec *cache, > - > To unsubscribe from this list: send the line "unsubscribe > linux-kernel" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c
On Wed, Aug 22, 2007 at 11:07:33PM +0200, Takashi Iwai wrote: > At Wed, 22 Aug 2007 22:23:03 +0200, > Mariusz Kozlowski wrote: > > > > Hello, > > > > This is from x86_32 with gcc 3.4.6: > > > > CC [M] sound/pci/hda/hda_codec.o > > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free': > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in > > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in > > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here > > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1 > > make[2]: *** [sound/pci/hda] Error 2 > > make[1]: *** [sound/pci] Error 2 > > make: *** [sound] Error 2 > > Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x > specific problem. >... It happens because gcc doesn't see the whole file without unit-at-a-time and we disable unit-at-a-time with gcc 3.4 on i386 due to stack usage problems (and older GNU gcc versions don't support unit-at-a-time at all). cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c
> > This is from x86_32 with gcc 3.4.6: > > > > CC [M] sound/pci/hda/hda_codec.o > > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free': > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in > > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here > > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in > > call to 'free_hda_cache': function body not available > > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here > > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1 > > make[2]: *** [sound/pci/hda] Error 2 > > make[1]: *** [sound/pci] Error 2 > > make: *** [sound] Error 2 > > Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x > specific problem. Does the patch below fix? Yes - it does. Thanks, Mariusz > diff -r db9001b20d29 pci/hda/hda_codec.c > --- a/pci/hda/hda_codec.c Wed Aug 22 14:19:45 2007 +0200 > +++ b/pci/hda/hda_codec.c Wed Aug 22 23:06:00 2007 +0200 > @@ -514,7 +514,7 @@ static int read_widget_caps(struct hda_c > > static void init_hda_cache(struct hda_cache_rec *cache, > unsigned int record_size); > -static inline void free_hda_cache(struct hda_cache_rec *cache); > +static void free_hda_cache(struct hda_cache_rec *cache); > > /* > * codec destructor > @@ -707,7 +707,7 @@ static void __devinit init_hda_cache(str > cache->record_size = record_size; > } > > -static inline void free_hda_cache(struct hda_cache_rec *cache) > +static void free_hda_cache(struct hda_cache_rec *cache) > { > kfree(cache->buffer); > } > - - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c
At Wed, 22 Aug 2007 22:23:03 +0200, Mariusz Kozlowski wrote: > > Hello, > > This is from x86_32 with gcc 3.4.6: > > CC [M] sound/pci/hda/hda_codec.o > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free': > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call > to 'free_hda_cache': function body not available > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call > to 'free_hda_cache': function body not available > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1 > make[2]: *** [sound/pci/hda] Error 2 > make[1]: *** [sound/pci] Error 2 > make: *** [sound] Error 2 Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x specific problem. Does the patch below fix? Taksahi diff -r db9001b20d29 pci/hda/hda_codec.c --- a/pci/hda/hda_codec.c Wed Aug 22 14:19:45 2007 +0200 +++ b/pci/hda/hda_codec.c Wed Aug 22 23:06:00 2007 +0200 @@ -514,7 +514,7 @@ static int read_widget_caps(struct hda_c static void init_hda_cache(struct hda_cache_rec *cache, unsigned int record_size); -static inline void free_hda_cache(struct hda_cache_rec *cache); +static void free_hda_cache(struct hda_cache_rec *cache); /* * codec destructor @@ -707,7 +707,7 @@ static void __devinit init_hda_cache(str cache->record_size = record_size; } -static inline void free_hda_cache(struct hda_cache_rec *cache) +static void free_hda_cache(struct hda_cache_rec *cache) { kfree(cache->buffer); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c
Hello, This is from x86_32 with gcc 3.4.6: CC [M] sound/pci/hda/hda_codec.o sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free': sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here make[3]: *** [sound/pci/hda/hda_codec.o] Error 1 make[2]: *** [sound/pci/hda] Error 2 make[1]: *** [sound/pci] Error 2 make: *** [sound] Error 2 Regards, Mariusz - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/