On Wed, 2009-08-19 at 16:36 -0700, Greg KH wrote:> On Wed, Aug 19, 2009 at 11:38:03PM +0200, Rafael J. Wysocki wrote:> > On Wednesday 19 August 2009, Stephen Rothwell wrote:> > > Hi Rafael,> > > > Hi,> > > > > Today's linux-next build (x86_64 allmodconfig) produced these warnings:> > > > > > drivers/media/dvb/frontends/dib7000p.c: In function ‘dib7000p_i2c_enumeration’:> > > drivers/media/dvb/frontends/dib7000p.c:1315: warning: the frame size of 2256 bytes is larger than 2048 bytes> > > drivers/media/dvb/frontends/dib3000mc.c: In function ‘dib3000mc_i2c_enumeration’:> > > drivers/media/dvb/frontends/dib3000mc.c:853: warning: the frame size of 2160 bytes is larger than 2048 bytes> > > > > > Introduced by commit 99307958cc9c1b0b2e0dad4bbefdafaf9ac5a681 ("PM:> > > Introduce core framework for run-time PM of I/O devices (rev. 17)").> > > > Well.> > > > This commit increases the size of struct device quite a bit and both of the> > drivers above create a "state" object on the stack that contains struct device> > among other things.> > Ick. struct device should _never_ be on the stack, why would this code> want to do such a thing? It appears that the state object is a dummy being used to detect andtwiddle some identical chips on the i2c bus. The functions called onlyuse the "i2c_adapter" and "cfg" member of the dummy state object, butthose functions want that state object as an input argument. <obvious>The simplest fix is dynamic allocation of the dummy state object withkmalloc() and then to free it before exiting the function.</obvious> Regards,Andy > thanks,> > greg k-h _______________________________________________linux-pm mailing listlinux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx://lists.linux-foundation.org/mailman/listinfo/linux-pm