Re: [PATCH] ACPI / video: Fix circular lock dependency issue in the video-detect code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, August 13, 2015 10:39:08 PM Sedat Dilek wrote:
> 
> --f46d04447e7fc2306e051d3753a5
> Content-Type: text/plain; charset=UTF-8
> 
> On Thu, Aug 13, 2015 at 6:53 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> > Before this commit, the following would happen:
> >
> > a) acpi_video_get_backlight_type() gets called
> > b) acpi_video_get_backlight_type() calls acpi_video_init_backlight_type()
> > c) acpi_video_init_backlight_type() locks its function static init_mutex
> > d) acpi_video_init_backlight_type() calls backlight_register_notifier()
> > e) backlight_register_notifier() takes its notifier-chain lock
> >
> > And when the backlight notifier chain gets called we've:
> >
> > 1) blocking_notifier_call_chain() gets called
> > 2) blocking_notifier_call_chain() takes the notifier-chain lock
> > 3) blocking_notifier_call_chain() calls acpi_video_backlight_notify()
> > 4) acpi_video_backlight_notify() calls acpi_video_get_backlight_type()
> > 5) acpi_video_get_backlight_type() calls acpi_video_init_backlight_type()
> > 6) acpi_video_init_backlight_type() locks its function static init_mutex
> >
> > So in the first call sequence we have:
> >
> > a) init_mutex gets locked
> > b) notifier-chain gets locked
> >
> > and in the second call sequence we have:
> >
> > 1) notifier-chain gets locked
> > 2) init_mutex gets locked
> >
> > And we've a circular locking dependency. This specific locking dependency
> > is fixable without using the big hammer otherwise known as a workqueue,
> > but further analysis shows a similar problem with the backlight notifier
> > chain lock vs register_count_mutex from drivers/acpi/acpi_video.c,
> > and fixing that becomes problematic.
> >
> > So this commit simply fixes this with the big hammer, performance
> > wise this is a non issue as we expect the work to get scheduled
> > exactly zero or one times during normal system use.
> >
> 
> This patch on top of Linux v4.2-rc6 fixes the issue for me.
> 
> Feel free to add my...
> 
>    Reported-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
>    Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>

Applied, thanks!

Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux