ACPI: video: Remove acpi_video_set_dmi_backlight_type()
acpi_video_set_dmi_backlight_type() is troublesome because it may end up getting called after other backlight drivers have already called acpi_video_get_backlight_type() resulting in the other drivers already being registered even though they should not. In case of the acpi_video backlight, acpi_video_set_dmi_backlight_type() actually calls acpi_video_unregister_backlight() since that is often probed earlier, leading to userspace seeing the acpi_video0 class device being briefly available, leading to races in userspace where udev probe-rules try to access the device and it is already gone. All callers have been fixed to no longer call it, so remove acpi_video_set_dmi_backlight_type() now. This means we now also no longer need acpi_video_unregister_backlight() for the remove acpi_video backlight after it was wrongly registered hack, so remove that too. Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
8991d7d9ad
commit
77ab9d4d44
|
@ -2296,16 +2296,6 @@ void acpi_video_register_backlight(void)
|
|||
}
|
||||
EXPORT_SYMBOL(acpi_video_register_backlight);
|
||||
|
||||
void acpi_video_unregister_backlight(void)
|
||||
{
|
||||
struct acpi_video_bus *video;
|
||||
|
||||
mutex_lock(&video_list_lock);
|
||||
list_for_each_entry(video, &video_bus_head, entry)
|
||||
acpi_video_bus_unregister_backlight(video);
|
||||
mutex_unlock(&video_list_lock);
|
||||
}
|
||||
|
||||
bool acpi_video_handles_brightness_key_presses(void)
|
||||
{
|
||||
return may_report_brightness_keys &&
|
||||
|
|
|
@ -38,8 +38,6 @@
|
|||
#include <linux/workqueue.h>
|
||||
#include <acpi/video.h>
|
||||
|
||||
void acpi_video_unregister_backlight(void);
|
||||
|
||||
static enum acpi_backlight_type acpi_backlight_cmdline = acpi_backlight_undef;
|
||||
static enum acpi_backlight_type acpi_backlight_dmi = acpi_backlight_undef;
|
||||
|
||||
|
@ -817,17 +815,3 @@ bool acpi_video_backlight_use_native(void)
|
|||
return __acpi_video_get_backlight_type(true) == acpi_backlight_native;
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_video_backlight_use_native);
|
||||
|
||||
/*
|
||||
* Set the preferred backlight interface type based on DMI info.
|
||||
* This function allows DMI blacklists to be implemented by external
|
||||
* platform drivers instead of putting a big blacklist in video_detect.c
|
||||
*/
|
||||
void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type)
|
||||
{
|
||||
acpi_backlight_dmi = type;
|
||||
/* Remove acpi-video backlight interface if it is no longer desired */
|
||||
if (acpi_video_get_backlight_type() != acpi_backlight_video)
|
||||
acpi_video_unregister_backlight();
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_video_set_dmi_backlight_type);
|
||||
|
|
|
@ -60,7 +60,6 @@ extern int acpi_video_get_edid(struct acpi_device *device, int type,
|
|||
int device_id, void **edid);
|
||||
extern enum acpi_backlight_type acpi_video_get_backlight_type(void);
|
||||
extern bool acpi_video_backlight_use_native(void);
|
||||
extern void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type);
|
||||
/*
|
||||
* Note: The value returned by acpi_video_handles_brightness_key_presses()
|
||||
* may change over time and should not be cached.
|
||||
|
@ -86,9 +85,6 @@ static inline bool acpi_video_backlight_use_native(void)
|
|||
{
|
||||
return true;
|
||||
}
|
||||
static inline void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type)
|
||||
{
|
||||
}
|
||||
static inline bool acpi_video_handles_brightness_key_presses(void)
|
||||
{
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue