Re: [PATCH] 2.6 I2C re-add i2c_get_client()

From: Greg KH
Date: Fri May 07 2004 - 19:23:01 EST


On Sun, May 02, 2004 at 05:08:15PM +0200, stefan.eletzhofer@xxxxxxxxxxxxx wrote:
> On Sat, May 01, 2004 at 11:01:09PM -0700, Greg KH wrote:
> > On Thu, Apr 29, 2004 at 04:06:57PM +0200, stefan.eletzhofer@xxxxxxxxxxxxx wrote:
> > > Hi,
> > > here's a patch which re-adds i2c_get_client() back to i2c_core.c.
> > > That call was removed in 2003 because there were no users of that
> > > function at that time.
> > >
> > > I think this call is needed for I2C chip drivers which provide functionality to
> > > be used by other driver modules, for example RTC chips or EEPROMs. These chip
> > > drivers tend to encapsulate raw i2c chip access and provide function calls
> > > for other modulesi, for example via the i2c_driver->command() method.
> > >
> > > I tried to get the locking right, so please comment. The patch is
> > > against 2.6.6-rc3 and works quite fine with my i2c rtc chip.
> >
> > Locking looks correct, but you also need to increment either the
> > device's reference count, and/or the module reference count for the
> > client.
>
> I thought that would be the purpose of i2c_use_client(), like the comment
> in linux/i2c.h suggests? That call also takes care of the ALLOW_USE flag.

Yes, but your new function doesn't call it, right? What happens if the
driver goes away between the get_client call and the use_client call?
oops...

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/