linux/drivers/gpio
Kent Gibson ee0166b637 gpiolib: cdev: fix uninitialised kfifo
If a line is requested with debounce, and that results in debouncing
in software, and the line is subsequently reconfigured to enable edge
detection then the allocation of the kfifo to contain edge events is
overlooked.  This results in events being written to and read from an
uninitialised kfifo.  Read events are returned to userspace.

Initialise the kfifo in the case where the software debounce is
already active.

Fixes: 65cff70464 ("gpiolib: cdev: support setting debounce")
Signed-off-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20240510065342.36191-1-warthog618@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2024-05-10 16:38:27 +02:00
..
gpio-74x164.c gpio: 74x164: Enable output pins after registers are reset 2024-03-01 08:23:08 +01:00
gpio-74xx-mmio.c gpio: 74xx-mmio: remove unneeded platform_set_drvdata() call 2023-07-29 16:03:17 +02:00
gpio-104-dio-48e.c gpio: 104-dio-48e: Add Counter/Timer support 2023-07-27 09:37:33 +02:00
gpio-104-idi-48.c gpio: 104-idi-48: Enable use_raw_spinlock for idi48_regmap_config 2023-04-11 21:08:31 +02:00
gpio-104-idio-16.c gpio: 104-idio-16: Migrate to the regmap API 2023-08-11 14:23:29 +02:00
gpio-adnp.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-adp5520.c
gpio-aggregator.c gpio: aggregator: Set up a parser of delay line parameters 2023-06-16 11:02:07 +02:00
gpio-altera-a10sr.c gpio: altera-a10sr: remove redundant of_match_ptr 2023-08-03 15:58:45 +02:00
gpio-altera.c gpio: altera: Convert to platform remove callback returning void 2023-10-02 08:53:57 +02:00
gpio-amd8111.c gpio: amd8111: Fix PCI device reference count leak 2022-11-30 17:18:35 +01:00
gpio-amd-fch.c
gpio-amdpt.c gpio: amdpt: Convert to platform remove callback returning void 2023-10-02 08:54:09 +02:00
gpio-arizona.c gpio: arizona: Remove unused header(s) 2022-10-19 17:03:55 +03:00
gpio-aspeed-sgpio.c gpio: aspeed-sgpio: Convert to immutable irq_chip 2023-03-10 16:17:20 +01:00
gpio-aspeed.c treewide: rename pinctrl_gpio_set_config_new() 2023-11-04 10:23:22 +01:00
gpio-ath79.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-bcm-kona.c gpio: bcm-kona: Drop unused pdev member in private data structure 2023-07-19 13:26:22 +02:00
gpio-bd9571mwv.c
gpio-bd71815.c
gpio-bd71828.c
gpio-brcmstb.c gpio: brcmstb: Convert to platform remove callback returning void 2023-10-02 08:54:20 +02:00
gpio-bt8xx.c
gpio-cadence.c gpio: cadence: Convert to platform remove callback returning void 2023-10-02 08:54:26 +02:00
gpio-clps711x.c gpio: clps711x: remove redundant of_match_ptr() 2023-08-03 15:58:46 +02:00
gpio-creg-snps.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-cros-ec.c gpio: Add ChromeOS EC GPIO driver 2024-02-26 14:37:50 +01:00
gpio-crystalcove.c gpio: crystalcove: Use -ENOTSUPP consistently 2024-04-05 20:12:39 +03:00
gpio-cs5535.c
gpio-da9052.c gpio: da9052: Remove unused header(s) 2022-10-19 17:03:55 +03:00
gpio-da9055.c
gpio-davinci.c gpio: Use device_get_match_data() 2023-10-09 09:08:08 +02:00
gpio-dln2.c gpio: dln2: Convert to platform remove callback returning void 2023-10-02 08:54:31 +02:00
gpio-ds4520.c gpio: ds4520: Add ADI DS4520 GPIO Expander Support 2023-07-29 15:56:33 +02:00
gpio-dwapb.c gpio: dwapb: Use generic request, free and set_config 2024-01-02 14:16:17 +01:00
gpio-eic-sprd.c Linux 6.8-rc4 2024-02-12 10:12:41 +01:00
gpio-elkhartlake.c gpio: elkhartlake: reuse pm_ops from Intel Tangier driver 2023-11-13 17:59:48 +02:00
gpio-em.c pinctrl: em: drop the wrapper around pinctrl_gpio_request() 2023-11-04 10:23:23 +01:00
gpio-en7523.c gpio: EN7523: fix kernel-doc warnings 2024-01-15 23:15:35 +01:00
gpio-ep93xx.c gpio: ep93xx: remove unused variable 2023-01-27 14:05:38 +01:00
gpio-exar.c gpio: exar: remove unneeded platform_set_drvdata() call 2023-07-29 16:04:38 +02:00
gpio-f7188x.c gpio-f7188x: fix base values conflicts with other gpio pins 2023-09-11 09:03:44 +02:00
gpio-ftgpio010.c gpio: ftgpio010: Convert to platform remove callback returning void 2023-10-02 08:54:36 +02:00
gpio-fxl6408.c gpio: fx6408: Convert to use maple tree register cache 2023-10-02 08:58:01 +02:00
gpio-ge.c gpio: ge: Replace GPLv2 boilerplate with SPDX 2023-07-27 09:33:07 +02:00
gpio-gpio-mm.c gpio: gpio-mm: Migrate to regmap API 2023-01-30 15:55:28 +01:00
gpio-grgpio.c gpio: grgpio: Convert to platform remove callback returning void 2023-10-02 08:54:41 +02:00
gpio-gw-pld.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-hisi.c gpio: hisi: Fix format specifier 2023-10-13 08:39:30 +02:00
gpio-hlwd.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-htc-egpio.c
gpio-i8255.c gpio: i8255: Remove unused legacy interface 2023-01-30 15:55:28 +01:00
gpio-i8255.h gpio: i8255: Remove unused legacy interface 2023-01-30 15:55:28 +01:00
gpio-ich.c gpio: ich: Use devm_gpiochip_add_data() to simplify remove path 2023-03-09 16:08:39 +02:00
gpio-idio-16.c gpio: idio-16: Remove unused legacy interface 2023-08-11 14:23:32 +02:00
gpio-idio-16.h gpio: idio-16: Remove unused legacy interface 2023-08-11 14:23:32 +02:00
gpio-idt3243x.c gpio: idt3243x: Convert to immutable irq_chip 2023-03-10 16:17:30 +01:00
gpio-imx-scu.c gpio: imx-scu: Use ARRAY_SIZE for array length 2023-08-11 16:20:02 +02:00
gpio-it87.c
gpio-ixp4xx.c gpio: ixp4xx: Handle clock output on pin 14 and 15 2023-12-01 10:48:32 +01:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-latch.c gpio: Add gpio latch driver 2022-10-26 14:52:01 +02:00
gpio-ljca.c gpio: update Intel LJCA USB GPIO driver 2023-10-11 11:33:38 +02:00
gpio-logicvc.c gpio: logicvc: remove unneeded platform_set_drvdata() call 2023-07-29 16:05:50 +02:00
gpio-loongson1.c gpio: loongson1: Add DT support 2023-03-23 14:31:18 +01:00
gpio-loongson-64bit.c gpio: loongson: add more gpio chip support 2023-09-27 09:06:50 +02:00
gpio-loongson.c
gpio-lp873x.c
gpio-lp3943.c gpio: lp3943: remove unneeded platform_set_drvdata() call 2023-08-01 21:14:48 +02:00
gpio-lp87565.c
gpio-lpc18xx.c gpio: lpc18xx: Convert to platform remove callback returning void 2023-10-02 08:54:50 +02:00
gpio-lpc32xx.c gpio: lpc32xx: fix module autoloading 2024-04-12 21:30:58 +02:00
gpio-madera.c
gpio-max730x.c gpio: max730x: don't use kernel-doc marker for regular comment 2023-12-07 09:24:08 +01:00
gpio-max732x.c gpio: max732x: remove redundant CONFIG_OF and of_match_ptr() 2023-08-03 15:56:30 +02:00
gpio-max3191x.c gpio: max3191x: remove redundant of_match_ptr() 2023-08-03 15:58:50 +02:00
gpio-max7300.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-max7301.c
gpio-max77620.c gpio: max77620: remove unneeded platform_set_drvdata() call 2023-08-01 21:15:23 +02:00
gpio-max77650.c
gpio-mb86s7x.c gpio: mb86s7x: Convert to platform remove callback returning void 2023-10-02 08:54:55 +02:00
gpio-mc33880.c
gpio-menz127.c
gpio-merrifield.c gpio: merrifield: Utilise temporary variable for struct device 2023-03-06 17:10:46 +02:00
gpio-ml-ioh.c
gpio-mlxbf2.c gpio: mlxbf2: Convert to immutable irq_chip 2023-03-10 16:17:32 +01:00
gpio-mlxbf3.c gpio: mlxbf3: add an error code check in mlxbf3_gpio_probe 2024-01-15 11:11:29 +01:00
gpio-mlxbf.c
gpio-mm-lantiq.c gpio: mm-lantiq: Convert to platform remove callback returning void 2023-10-02 08:55:00 +02:00
gpio-mmio.c gpio: mmio: Clean up headers 2023-12-18 13:43:06 +01:00
gpio-mockup.c gpio: mockup: initialize a managed pointer in place 2023-11-20 14:24:50 +01:00
gpio-moxtet.c
gpio-mpc8xxx.c gpio: mpc8xxx: Convert to platform remove callback returning void 2023-10-02 08:55:09 +02:00
gpio-mpc5200.c gpio: mpc5200: Convert to platform remove callback returning void 2023-10-02 08:55:04 +02:00
gpio-msc313.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-mt7621.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-mvebu.c gpio: mvebu: Make use of devm_pwmchip_alloc() function 2024-02-22 14:39:28 +01:00
gpio-mxc.c gpio: mxc: Use helper function devm_clk_get_optional_enabled() 2023-08-21 14:11:16 +02:00
gpio-mxs.c gpio: mxs: fix Wvoid-pointer-to-enum-cast warning 2023-08-11 16:21:46 +02:00
gpio-nomadik.c drivers/gpio/nomadik: move dummy nmk_gpio_dbg_show_one() to header 2024-03-12 12:53:35 +01:00
gpio-npcm-sgpio.c gpio: nuvoton: Add Nuvoton NPCM sgpio driver 2024-01-03 11:25:41 +01:00
gpio-octeon.c
gpio-omap.c OMAP/gpio: drop MPUIO static base 2023-10-04 11:37:25 +02:00
gpio-palmas.c gpio: palmas: remove unnecessary call to platform_set_drvdata() 2023-08-01 21:22:38 +02:00
gpio-pca953x.c gpio: pca953x: Convert to use maple tree register cache 2023-10-02 08:57:48 +02:00
gpio-pca9570.c gpio: pca9570: fix kerneldoc 2023-08-21 10:39:58 +02:00
gpio-pcf857x.c gpio: pcf857x: Extend match data support for OF tables 2023-08-22 11:41:17 +02:00
gpio-pch.c
gpio-pci-idio-16.c gpio: pci-idio-16: Migrate to the regmap API 2023-08-11 14:23:31 +02:00
gpio-pcie-idio-24.c gpio: pcie-idio-24: Migrate to the regmap API 2023-08-11 14:23:33 +02:00
gpio-pisosr.c gpio: pisosr: Use devm_gpiochip_add_data() to simplify remove path 2023-07-20 17:22:10 +02:00
gpio-pl061.c gpio: pl061: Add missing header(s) 2022-10-24 12:29:26 +03:00
gpio-pmic-eic-sprd.c gpio: pmic-eic-sprd: Configure the bit corresponding to the EIC through offset 2024-01-03 09:50:47 +01:00
gpio-pxa.c treewide: rename pinctrl_gpio_direction_output_new() 2023-11-04 10:23:22 +01:00
gpio-raspberrypi-exp.c gpio: raspberrypi-exp: remove redundant of_match_ptr() 2023-08-03 15:58:52 +02:00
gpio-rc5t583.c gpio: rc5t583: remove unneeded call to platform_set_drvdata() 2023-08-01 21:26:48 +02:00
gpio-rcar.c treewide: rename pinctrl_gpio_free_new() 2023-11-04 10:23:21 +01:00
gpio-rda.c gpio: rda: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-rdc321x.c
gpio-realtek-otto.c gpio: realtek-otto: switch to 32-bit I/O 2022-08-31 17:46:30 +02:00
gpio-reg.c gpio: reg: Add missing header(s) 2023-03-06 12:33:02 +02:00
gpio-regmap.c gpio: regmap: Add missing header(s) 2023-03-06 12:33:02 +02:00
gpio-rockchip.c treewide: rename pinctrl_gpio_direction_output_new() 2023-11-04 10:23:22 +01:00
gpio-rtd.c gpio: rtd: Fix signedness bug in probe 2024-01-15 11:07:46 +01:00
gpio-sa1100.c gpio: sa1100: include <mach/generic.h> 2023-05-17 11:56:24 +02:00
gpio-sama5d2-piobu.c gpio: sama5d2-piobu: remove unneeded call to platform_set_drvdata() 2023-08-01 21:27:38 +02:00
gpio-sch311x.c gpio: sch311x: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:52:14 +02:00
gpio-sch.c gpio: sch: remove unneeded call to platform_set_drvdata() 2023-08-03 15:44:46 +02:00
gpio-sifive.c gpio: sifive: remove unneeded call to platform_set_drvdata() 2023-11-15 15:39:40 +01:00
gpio-sim.c gpio: sim: use for_each_hwgpio() 2024-02-26 16:43:51 +01:00
gpio-siox.c gpio: siox: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-sl28cpld.c gpio: sl28cpld: Replace irqchip mask_invert with unmask_base 2022-11-15 15:41:45 +01:00
gpio-sodaville.c
gpio-spear-spics.c
gpio-sprd.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-stmpe.c gpio: stmpe: use gpiochip_dup_line_label() 2023-12-08 09:26:28 +01:00
gpio-stp-xway.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-syscon.c gpio: syscon: remove unneeded call to platform_set_drvdata() 2023-08-03 15:44:49 +02:00
gpio-tangier.c gpio: tangier: Use correct type for the IRQ chip data 2024-04-12 23:41:05 +03:00
gpio-tangier.h gpio: tangier: unexport suspend/resume handles 2023-11-13 17:59:48 +02:00
gpio-tb10x.c gpio updates for v6.7-rc1 2023-10-31 17:21:54 -10:00
gpio-tc3589x.c gpio: tc3589x: Make irqchip immutable 2022-10-03 20:56:46 +02:00
gpio-tegra186.c gpio: tegra186: Fix tegra186_gpio_is_accessible() check 2024-04-24 15:31:41 +02:00
gpio-tegra.c pinctrl: tegra: drop the wrapper around pinctrl_gpio_request() 2023-11-04 10:23:23 +01:00
gpio-thunderx.c gpio: thunderx: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-timberdale.c gpio: timberdale: Fix potential deadlock on &tgpio->lock 2023-09-27 08:51:28 +02:00
gpio-tn48m.c
gpio-tpic2810.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-tps6586x.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-tps65086.c gpio: tps65086: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:40:40 +02:00
gpio-tps65218.c gpio: tps65218: remove redundant of_match_ptr() 2023-08-03 15:55:34 +02:00
gpio-tps65219.c gpio: tps65219: don't use CONFIG_DEBUG_GPIO 2023-12-27 15:56:48 +01:00
gpio-tps65910.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-tps65912.c
gpio-tps68470.c gpio: tps68470: Make tps68470_gpio_output() always set the initial value 2023-07-19 13:22:13 +02:00
gpio-tqmx86.c gpio: tqmx86: remove unneeded call to platform_set_drvdata() 2023-08-03 15:47:58 +02:00
gpio-ts4800.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-ts4900.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-ts5500.c gpio: ts5500: Convert to platform remove callback returning void 2023-10-02 08:55:27 +02:00
gpio-twl4030.c This removes all usage of global GPIO numbers from 2023-05-31 17:01:34 +02:00
gpio-twl6040.c
gpio-uniphier.c gpio: uniphier: Convert to platform remove callback returning void 2023-10-02 08:55:32 +02:00
gpio-vf610.c treewide: rename pinctrl_gpio_direction_output_new() 2023-11-04 10:23:22 +01:00
gpio-viperboard.c
gpio-virtio.c
gpio-visconti.c gpio: visconti: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-vx855.c gpio: vx855: remove unneeded call to platform_set_drvdata() 2023-08-03 15:48:15 +02:00
gpio-wcd934x.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-wcove.c gpio: wcove: Use -ENOTSUPP consistently 2024-04-05 20:12:03 +03:00
gpio-winbond.c
gpio-wm831x.c gpio: wm831x: use gpiochip_dup_line_label() 2023-12-08 09:26:20 +01:00
gpio-wm8350.c gpio: wm8350: Remove unused header(s) 2022-10-24 12:29:41 +03:00
gpio-wm8994.c gpio: wm8994: use gpiochip_dup_line_label() 2023-12-08 09:26:25 +01:00
gpio-ws16c48.c gpio updates for v6.6 2023-08-29 10:21:56 -07:00
gpio-xgene-sb.c gpio: xgene-sb: Convert to platform remove callback returning void 2023-10-02 08:55:38 +02:00
gpio-xgene.c
gpio-xgs-iproc.c gpio: xgs-iproc: Convert to platform remove callback returning void 2023-10-02 08:55:42 +02:00
gpio-xilinx.c gpio: xilinx: remove excess kernel doc 2023-12-18 09:56:21 +01:00
gpio-xlp.c gpio: xlp: Convert to immutable irq_chip 2023-03-23 14:31:19 +01:00
gpio-xra1403.c gpio: xra1403: remove redundant of_match_ptr() 2023-08-03 15:58:54 +02:00
gpio-xtensa.c
gpio-zevio.c gpio: zevio: remove unneeded call to platform_set_drvdata() 2023-08-03 15:48:27 +02:00
gpio-zynq.c gpio: zynq: Convert to platform remove callback returning void 2023-10-02 08:55:50 +02:00
gpio-zynqmp-modepin.c
gpiolib-acpi.c gpio: acpi: Make acpi_gpio_count() take firmware node as a parameter 2024-03-01 09:08:34 +01:00
gpiolib-acpi.h gpio: acpi: Make acpi_gpio_count() take firmware node as a parameter 2024-03-01 09:08:34 +01:00
gpiolib-cdev.c gpiolib: cdev: fix uninitialised kfifo 2024-05-10 16:38:27 +02:00
gpiolib-cdev.h
gpiolib-devres.c gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index() 2024-02-27 14:17:38 +01:00
gpiolib-legacy.c gpio: legacy: mark old interfaces as deprecated in kernel docs 2024-01-22 09:43:33 +01:00
gpiolib-of.c gpio: of: Make of_gpio_get_count() take firmware node as a parameter 2024-03-01 09:07:21 +01:00
gpiolib-of.h gpio: of: Make of_gpio_get_count() take firmware node as a parameter 2024-03-01 09:07:21 +01:00
gpiolib-swnode.c gpio: swnode: replace gpiochip_find() with gpio_device_find_by_label() 2023-10-04 13:36:23 +02:00
gpiolib-swnode.h gpiolib: add support for software nodes 2022-11-15 11:21:43 +01:00
gpiolib-sysfs.c gpio: sysfs: repair export returning -EPERM on 1st attempt 2024-03-08 10:32:00 +01:00
gpiolib-sysfs.h gpiolib: revert the attempt to protect the GPIO device list with an rwsem 2024-01-17 09:52:37 +01:00
gpiolib.c gpiolib: use a single SRCU struct for all GPIO descriptors 2024-05-09 15:06:36 +02:00
gpiolib.h gpiolib: use a single SRCU struct for all GPIO descriptors 2024-05-09 15:06:36 +02:00
Kconfig Pin control changes for the v6.9 kernel cycle: 2024-03-14 10:22:26 -07:00
Makefile Pin control changes for the v6.9 kernel cycle: 2024-03-14 10:22:26 -07:00
TODO gpiolib: split of_mm_gpio_chip out of linux/of_gpio.h 2023-03-06 12:33:01 +02:00