powermac: More powermac backlight fixes
Michael Hanselmann
linux-kernel at hansmi.ch
Wed Jul 26 04:44:06 EST 2006
Hello Andrew
On Mon, Jul 24, 2006 at 08:03:15PM -0700, Andrew Morton wrote:
> I see schedule_work()s in there, but no flush_scheduled_work()s or anything
> like that. Generally, this means there are races against rmmod, close(),
> etc.
I'll check that. Another patch is in the work already.
> > +void pmac_backlight_disable()
> > +{
> > + atomic_inc(&kernel_backlight_disabled);
> > +}
> > +
> > +void pmac_backlight_enable()
> > +{
> > + atomic_dec(&kernel_backlight_disabled);
> > +}
> > +
> So if userspace calls ioctl(PMU_IOC_GRAB_BACKLIGHT) eleven times, eleven
> enables are needed? (Actually, eleven open()/close() sequences, I think).
> Methinks you wanted just
> kernel_backlight_disabled = 1;
> ?
Aristeu already asked me that, and no, the disabling is meant to be
recursive. The old code did something like "spin_lock(...); disable++;
spin_unlock(...);". It then checked for "if (disable) return;". My code
basically moves the code from the via-pmu driver and removes the
spinlocks.
Thanks,
Michael
More information about the Linuxppc-dev
mailing list