"examples/react/js/todoItem.jsx" did not exist on "1b16a19dfdc8b9ea8e4703f30779c5f2dd44a70a"
  • Hans de Goede's avatar
    HID: logitech-hidpp: Fix connect event race · 680ee411
    Hans de Goede authored
    
    
    There is a connect event race in hidpp_probe() in these 2 lines:
    
    	connected = hidpp_root_get_protocol_version(hidpp) == 0;
    	atomic_set(&hidpp->connected, connected);
    
    Specifically the following can happen:
    
    1. This line from hidpp_probe() is executed:
    	connected = hidpp_root_get_protocol_version(hidpp) == 0;
       and sets connected to false;
    
    2. A connect-event packet is received and does:
    	atomic_set(&hidpp->connected, true);
    
    3. The next line from hidpp_probe() is executed:
    	atomic_set(&hidpp->connected, connected);
       and sets the atomic_t back to 0 again.
    
    4. hidpp_connect_event() runs and sees the connected device
       as disconnected because of this.
    
    To fix this make hidpp_connect_event() query the connection status
    of the device itself instead of having it rely on possibly stale
    data cached in struct hidpp_device.
    
    This series has been tested on the following devices:
    Logitech Bluetooth Laser Travel Mouse (bluetooth, HID++ 1.0)
    Logitech M720 Triathlon (bluetooth, HID++ 4.5)
    Logitech M720 Triathlon (unifying, HID++ 4.5)
    Logitech K400 Pro (unifying, HID++ 4.1)
    Logitech K270 (eQUAD nano Lite, HID++ 2.0)
    Logitech M185 (eQUAD nano Lite, HID++ 4.5)
    Logitech LX501 keyboard (27 Mhz, HID++ builtin scroll-wheel, HID++ 1.0)
    Logitech M-RAZ105 mouse (27 Mhz, HID++ extra mouse buttons, HID++ 1.0)
    
    And by bentiss:
    Logitech Touchpad T650 (unifying)
    Logitech Touchpad T651 (bluetooth)
    Logitech MX Master 3B (BLE)
    Logitech G403 (plain USB / Gaming receiver)
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20231010102029.111003-11-hdegoede@redhat.com
    
    Signed-off-by: default avatarBenjamin Tissoires <bentiss@kernel.org>
    680ee411
hid-logitech-hidpp.c 132 KB