linux/drivers/acpi
dmitry.torokhov@gmail.com 21988a8e51 ACPI: button: fix handling lid state changes when input device closed
The original intent of 84d3f6b764 was to delay evaluating lid state until
all drivers have been loaded, with input device being opened from userspace
serving as a signal for this condition. Let's ensure that state updates
happen even if userspace closed (or in the future inhibited) input device.

Note that if we go through suspend/resume cycle we assume the system has
been fully initialized even if LID input device has not been opened yet.

This has a side-effect of fixing access to input->users outside of
input->mutex protections by the way of eliminating said accesses and using
driver private flag.

Fixes: 84d3f6b764 ("ACPI / button: Delay acpi_lid_initialize_state() until first user space open")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Cc: 4.15+ <stable@vger.kernel.org> # 4.15+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-10-05 13:22:54 +02:00
..
acpica Merge branches 'acpi-mm', 'acpi-tables', 'acpi-apei' and 'acpi-misc' 2020-08-03 13:14:42 +02:00
apei ACPI: APEI: remove redundant assignment to variable rc 2020-07-27 15:22:58 +02:00
arm64 ACPI/IORT: Add an input ID to acpi_dma_configure() 2020-07-28 15:51:31 +01:00
dptf ACPI: DPTF: Add battery participant for TigerLake 2020-06-29 14:00:57 +02:00
nfit libnvdimm for 5.9 2020-08-11 10:59:19 -07:00
numa ACPI: NUMA: Remove the useless 'node >= MAX_NUMNODES' check 2020-07-27 15:19:12 +02:00
pmic ACPI / PMIC: Add i2c address for thermal control 2020-05-18 12:57:24 +02:00
x86 ACPI: Convert to new X86 CPU match macros 2020-03-24 21:30:50 +01:00
ac.c Merge branches 'acpi-mm', 'acpi-tables', 'acpi-apei' and 'acpi-misc' 2020-08-03 13:14:42 +02:00
acpi_adxl.c
acpi_amba.c Merge 5.2-rc6 into char-misc-next 2019-06-23 09:23:33 +02:00
acpi_apd.c ACPI: SoC: APD: Check return value of acpi_dev_get_property() 2020-08-21 20:20:55 +02:00
acpi_cmos_rtc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
acpi_configfs.c ACPI: configfs: Disallow loading ACPI tables when locked down 2020-06-22 16:41:27 +02:00
acpi_dbg.c ACPI: debug: Make two functions static 2020-05-09 11:33:07 +02:00
acpi_extlog.c EDAC: Drop the EDAC report status checks 2020-04-14 16:01:01 +02:00
acpi_ipmi.c
acpi_lpat.c
acpi_lpit.c ACPI: LPIT: Put the low power idle table after using it 2020-05-09 11:29:16 +02:00
acpi_lpss.c PM: sleep: core: Rename dev_pm_smart_suspend_and_suspended() 2020-04-24 21:32:41 +02:00
acpi_memhotplug.c mm/memory_hotplug: rename walk_memory_range() and pass start+size instead of pfns 2019-07-18 17:08:06 -07:00
acpi_pad.c This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
acpi_platform.c ACPI: platform: Unregister stale platform devices 2019-10-17 23:48:39 +02:00
acpi_pnp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
acpi_processor.c ACPI: Use fallthrough pseudo-keyword 2020-07-09 14:09:28 +02:00
acpi_tad.c PM: sleep: core: Rename DPM_FLAG_LEAVE_SUSPENDED 2020-04-24 21:34:22 +02:00
acpi_video.c ACPI: video: remove redundant assignments to variable result 2020-03-04 10:43:04 +01:00
acpi_watchdog.c ACPI: watchdog: Put the watchdog action table after parsing 2020-05-09 11:29:17 +02:00
battery.c ACPI: procfs: Remove last dirs after being marked deprecated for a decade 2020-06-22 16:55:47 +02:00
bgrt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
blacklist.c ACPI: blacklist: fix clang warning for unused DMI table 2019-07-11 22:45:00 +02:00
bus.c ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data() 2019-11-29 11:42:10 +01:00
button.c ACPI: button: fix handling lid state changes when input device closed 2020-10-05 13:22:54 +02:00
container.c
cppc_acpi.c ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe() 2020-05-28 13:47:53 +02:00
custom_method.c Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-09-28 08:14:15 -07:00
debugfs.c
device_pm.c Merge branches 'pm-cpufreq' and 'pm-acpi' 2020-06-10 17:10:40 +02:00
device_sysfs.c
dock.c ACPI: Use fallthrough pseudo-keyword 2020-07-09 14:09:28 +02:00
ec.c ACPI: EC: add newline when printing 'ec_event_clearing' module parameter 2020-06-22 17:17:18 +02:00
ec_sys.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 482 2019-06-19 17:09:52 +02:00
event.c
evged.c ACPI: Use fallthrough pseudo-keyword 2020-07-09 14:09:28 +02:00
fan.c ACPI: fan: Fix Tiger Lake ACPI device ID 2020-06-30 19:32:45 +02:00
glue.c
hed.c
internal.h ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake() 2020-05-11 10:11:38 +02:00
ioapic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-08 11:01:13 -07:00
Kconfig Merge branches 'acpi-mm', 'acpi-tables', 'acpi-apei' and 'acpi-misc' 2020-08-03 13:14:42 +02:00
Makefile ACPI: procfs: Remove last dirs after being marked deprecated for a decade 2020-06-22 16:55:47 +02:00
nvs.c
osi.c ACPI: OSI: Shoot duplicate word 2019-11-13 11:12:08 +01:00
osl.c ACPI: OSL: Prevent acpi_release_memory() from returning too early 2020-08-25 16:22:08 +02:00
pci_irq.c ACPI / PCI: fix acpi_pci_irq_enable() memory leak 2019-09-03 09:41:25 +02:00
pci_link.c ACPI: Delete unused proc filename macros 2020-05-14 13:49:33 +02:00
pci_mcfg.c PCI: Constify struct pci_ecam_ops 2020-05-01 16:28:59 +01:00
pci_root.c Merge branch 'pci/misc' 2020-06-04 12:59:11 -05:00
pci_slot.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491 2019-06-19 17:09:52 +02:00
power.c ACPI: Delete unused proc filename macros 2020-05-14 13:49:33 +02:00
pptt.c ACPI: PPTT: Consistently use unsigned int as parameter type 2020-01-07 11:46:36 +01:00
proc.c ACPI: list_for_each_safe() -> list_for_each_entry_safe() 2020-03-04 10:48:00 +01:00
processor_core.c
processor_driver.c cpufreq: Use per-policy frequency QoS 2019-10-21 02:05:21 +02:00
processor_idle.c ACPI: processor: Fix build for ARCH_APICTIMER_STOPS_ON_C3 unset 2020-09-23 13:50:12 +02:00
processor_pdc.c
processor_perflib.c ACPI: processor: Add QoS requests for all CPUs 2019-10-25 11:33:48 +02:00
processor_thermal.c ACPI: processor: Add QoS requests for all CPUs 2019-10-25 11:33:48 +02:00
processor_throttling.c x86: ACPI: fix CPU hotplug deadlock 2020-04-04 16:28:24 +02:00
property.c for-5.9/drivers-20200803 2020-08-05 10:51:40 -07:00
reboot.c
resource.c ACPI: Use fallthrough pseudo-keyword 2020-07-09 14:09:28 +02:00
sbs.c ACPI: Delete unused proc filename macros 2020-05-14 13:49:33 +02:00
sbshc.c
sbshc.h ACPI: SBS: remove unused const variable 'SMBUS_PEC' 2019-08-23 12:55:09 +02:00
scan.c ACPI/IORT: Add an input ID to acpi_dma_configure() 2020-07-28 15:51:31 +01:00
sleep.c ACPI updates for 5.8-rc1 2020-06-02 13:25:52 -07:00
sleep.h ACPI: PM: Add acpi_[un]register_wakeup_handler() 2020-04-04 19:45:18 +02:00
spcr.c ACPI: Use fallthrough pseudo-keyword 2020-07-09 14:09:28 +02:00
sysfs.c Merge back sysfs-related ACPI material for v5.9. 2020-06-29 13:49:49 +02:00
tables.c ACPI: tables: Remove the duplicated checks for acpi_parse_entries_array() 2020-07-27 15:19:12 +02:00
thermal.c acpi: thermal: Don't call thermal_zone_device_is_enabled() 2020-07-07 01:26:06 +02:00
tiny-power-button.c ACPI: Add new tiny-power-button driver to directly signal init 2020-02-13 23:36:23 +01:00
utils.c ACPI: utils: Add acpi_evaluate_reg() helper 2020-05-09 11:40:25 +02:00
video_detect.c ACPI: video: Use native backlight on Acer TravelMate 5735Z 2020-05-25 11:58:51 +02:00
wakeup.c ACPI: PM: Add acpi_[un]register_wakeup_handler() 2020-04-04 19:45:18 +02:00