Re: [PATCH 1/7] platform/x86: fujitsu-laptop: do not use kfifo for storing hotkey scancodes

From: Darren Hart
Date: Wed Jun 21 2017 - 14:15:56 EST


On Fri, Jun 16, 2017 at 06:40:52AM +0200, MichaÅ KÄpieÅ wrote:
> All ACPI device notify callbacks are invoked using acpi_os_execute(),
> which causes the supplied callback to be queued to a static workqueue
> which always executes on CPU 0. This means that there is no possibility
> for any ACPI device notify callback to be concurrently executed on
> multiple CPUs, which in the case of fujitsu-laptop means that using a
> locked kfifo for handling hotkeys is redundant: as hotkey scancodes are
> only pushed and popped from within acpi_fujitsu_laptop_notify(), no risk
> of concurrent pushing and popping exists.

Was the kfifo causing a problem currently or for the migration to separate
modules? Is this purely a simplification?

Rafael, the above rationale appears sound to me. Do you have any concerns?

...

> -#define RINGBUFFERSIZE 40
>
> /* Debugging */
> #define FUJLAPTOP_DBG_ERROR 0x0001
> @@ -146,8 +144,8 @@ struct fujitsu_laptop {
> struct input_dev *input;
> char phys[32];
> struct platform_device *pf_device;
> - struct kfifo fifo;
> - spinlock_t fifo_lock;
> + int scancode_buf[40];

Do we know why 40 was used here? A single use magic number is fine, but it would
be good to document why it is what it is if we know.

--
Darren Hart
VMware Open Source Technology Center