Subject: Re: linux-next: build warnings after merge of the i2c tree

From: Jean Delvare <[email-masked]>
Date: Tue, 22 Feb 2011 09:55:02 +0100

Hi Stephen,

On Tue, 22 Feb 2011 17:17:20 +1100, Stephen Rothwell wrote:
> Hi Jean,
> 
> On Mon, 21 Feb 2011 10:58:58 +0100 Jean Delvare <[email-masked]> wrote:
> >
> > On Mon, 21 Feb 2011 15:35:22 +1100, Stephen Rothwell wrote:
> > > Hi Jean,
> > > 
> > > After merging the tip tree, today's linux-next build (powerpc
> > > ppc64_defconfig) produced these warnings:
> > > 
> > > drivers/i2c/i2c-core.c: In function 'i2c_do_add_adapter':
> > > drivers/i2c/i2c-core.c:799: warning: 'attach_adapter' is deprecated (declared at include/linux/i2c.h:149)
> > > drivers/i2c/i2c-core.c:804: warning: 'attach_adapter' is deprecated (declared at include/linux/i2c.h:149)
> > > drivers/i2c/i2c-core.c: In function 'i2c_do_del_adapter':
> > > drivers/i2c/i2c-core.c:985: warning: 'detach_adapter' is deprecated (declared at include/linux/i2c.h:150)
> > > drivers/i2c/i2c-core.c:988: warning: 'detach_adapter' is deprecated (declared at include/linux/i2c.h:150)
> > > 
> > > Introduced by commit 95529c656b97b08c7a92504f98650a229f03ae04 ("i2c:
> > > Deprecate i2c_driver.attach_adapter and .detach_adapter").  We normally
> > > fix up as many uses of an interface as possible before deprecating it ...
> > 
> > These are the core locations where the deprecated callbacks are called.
> > Ideally they would _not_ emit warnings, are these are legitimate and
> > can't be removed before all drivers relying on these callbacks have
> > been fixed. If there is a way to silent these warnings, please let me
> > know, as I don't know of any.
> 
> You could build just that file with -Wno-deprecated-declarations, or put
> the deprecated stuff into another file that is built with that flag.
> We did the latter with pci_find_device (see commit e8b553bf4b19c "PCI:
> disable pci_find_device warnings when deprecated pci functions are
> enabled").

Thanks for the hints. The latter is difficult in my case, as the
functions where the deprecated methods are called are internal to
i2c-core. The former seems to work though, and I think we can live with
it for 6 months. I've appended the following to
i2c-03-deprecate-attach-detach_adapter.patch:

--- linux-2.6.38-rc5.orig/drivers/i2c/Makefile	2011-01-05 21:24:21.000000000 +0100
+++ linux-2.6.38-rc5/drivers/i2c/Makefile	2011-02-22 09:49:58.000000000 +0100
@@ -10,3 +10,4 @@ obj-$(CONFIG_I2C_MUX)		+= i2c-mux.o
 obj-y				+= algos/ busses/ muxes/
 
 ccflags-$(CONFIG_I2C_DEBUG_CORE) := -DDEBUG
+CFLAGS_i2c-core.o := -Wno-deprecated-declarations

Thanks,
-- 
Jean Delvare