On Wed, Oct 05, 2011 at 12:01:27AM +0100, Russell King - ARM Linux wrote:
> On Tue, Sep 27, 2011 at 01:10:04PM +0100, Mark Brown wrote:
> > On Tue, Sep 27, 2011 at 03:42:45PM +0530, Rajendra Nayak wrote:
> > 
> > > + init_data = devm_kzalloc(dev, sizeof(struct regulator_init_data),
> > > +                                          GFP_KERNEL);
> > > + if (!init_data)
> > > +         return NULL; /* Out of memory? */
> > 
> > This means that the init data will be kept around for the entire
> > lifetime of the device rather than being discarded.
> 
> May I remind you that devm_* lifetime expires whenever the associated
> driver is unbound, which can be much shorter than the lifetime of the
> struct device.
> 
> It expires when any of the following occurs:
> 1. userspace asks the associated driver to be unbound
> 2. the driver is removed
> 3. any driver probe for this struct device fails
> 4. the struct device is unregistered.
> 
> So: don't use devm_* for anything other than stuff inside a driver being
> associated with the struct device itself.  Other uses are a bug waiting
> to happen.

Yes, Russell is right.  There were a number of places where I
suggested using devm_* in entirely the wrong places.  Double check
anyplace where you've added devm_ calls.

g.

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to