From nobody Mon May 25 08:10:53 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA8E83BB11C for ; Fri, 15 May 2026 14:57:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778857078; cv=none; b=MPrbpJFrkxKifTgCiEpZejC4CysrqtO5lsiU+hOPQlmJ57YVu3+XMk4St8jHIQzgPsOgkAPf9aY1ymAh6IzH9Un7I0m/F31rH9nL1cysAd5CPDqwk4/CW7Cvl35tGQ8CNIX9c189O4IkGpQzZ2uLjXaW4F71Kz0Gc3lGzFW9fGY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778857078; c=relaxed/simple; bh=SC/CTbcSjT0Z1rGJfIUzIfcgnu46njymDXgOjHgKlCE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TGm4uK7OMubrD2tewgmOcjTWoBvKXD6hayVjUYeG8n7cC+bdRGLmeEVGsWaF1KiibczTnGy71XPHpYt2GSjA1lkBdu10ZllX2QKqhzDxpggzBIPiS1bt9WZQFVWLaOcKOiUeTg7nvidREdYCjYTL0HyZMVyxXdajVm+m/USfcbY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iOMXQVkE; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iOMXQVkE" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-44ce78ab5feso7850935f8f.0 for ; Fri, 15 May 2026 07:57:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778857075; x=1779461875; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hPkTPOfIUkqbVQzdpAjVs51egWppeSF7OM8UWfC68BM=; b=iOMXQVkE2qwgPKjsaK3S9YT6F1APsUk4N/pGRixDcBrdEt48YIjb97hUgGZP25cr+Q 2Uc5FiP/sYGiuauokBx2jyAtAYHVyBH4RKXDjo+NpQd+0z8hiprJ84+BtsPdJ4KNObox 2sOZiFExrPtdcEN4WSOF+ZVTo075Uf9ROe9x2rDGneEuFmdyN2lcdf0FM2O6hkz8rFKA 5ZmkEEta8jfPi3qQ5pLMiHb5qle9o/UfuSKleBZ7GQTQVSzKbFad3Lr9oB9epA9mJ8Xh i1M82KA5sp8v3yR2jDo0MsdNAbPka4sFQGF91NTMO1b+LmqMA2hW3Pv6qEBM6k3OVnuI 7YPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778857075; x=1779461875; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hPkTPOfIUkqbVQzdpAjVs51egWppeSF7OM8UWfC68BM=; b=tHPQStP8Wiwz53pUdzEQYlYtFTbw94+YFxMbcFPIvlsUXNxo1HmHhPyPo8c0Gbyeiz iGdaJq6g+klXFyQSCErRHfkb7pghgbIm4UJhmoCfLbU7McnD/oWH+wm5q0DHnwuuly7B UOYHW80/AFqhlYIaYkd1YJAOdpqGwiFV7d4e0sbn3ibRiRIrIyiqZ34J5G0dRFIJzrYd 6LD7PyGG0DPdIc61pdj1iPRRtCaVJd2fA0LHqcqcXVgbYW4yyg73j2kZRwuou464cTCQ vpdgBSrH8MmaPdHW6tE35NO7x+E/PfoU96cO7paoY313HUGbQJuoBVhvvwvbtbzarlHy nmGA== X-Forwarded-Encrypted: i=1; AFNElJ/amhxiPxZ4/j534A/2I2lYOVY6+illHDf3tgc1NsLFnnFj2WM/OlPR5ZCb1liR9cMcYP7vscARtyiABrU=@vger.kernel.org X-Gm-Message-State: AOJu0YzwpdgHEeOkv/6nL+WXR2ksizVl5wCfgVhQTe59rGmCN4cN5oXK NBE1pK5WzZsFmh0oESgK7r6gWGS+aGuVDP/0ixY2ERdkQr6eoBRKAy2YF810rXIeQLk= X-Gm-Gg: Acq92OFQbRsBFxFWTVzwwu8fpOnIMZfNwawnjbXdJneD/5XGnBKvlKBntSTG9kLpAQH 5VkPO998C6usQJICxIfPWxKBfwXt6m7q4IgJjZKj0vaCcjMFYvWCSB+f2Hr+sv1NhXaQqOQNIHS TMlZgUHynO9IdpkXnjQkkBxCYkUJmwmbkpK1SOjJyrtOdq8Xa2zO45biuuYWssAV/7sITBdlHHE Er+iTEccU9rxPnfhrDuFpdmWbIpzdxtnVEuI756BX/pElK8guQcU8iKbznjdVkWGp6QiCEJJoWv onyPF/SzuwwgMilD5HUuc0zGPK43wvGNwXopACrAmTvmzPa25sNVrBObTSgi6WbAmJODm3xUIsG k8UKA4Q3dgBrf8Sw/791NaA4Wu+iRYmMLpus9x9ZnWi52Ndfg2pra20iZmO0SyOIfFDALsg2qbW urR8k9FCLy4+O0f0LGLMEAJPd/oo52sUkCCVdN38Qc4MJqN3GRZGHnMJBWVvstQuT4taxh775V8 hadYzB6djqRevWeR5w+7NKO2XrarGN+rI4QV6uxZlZv5dcx9giL4SRYokYOY/T5I6MIJA== X-Received: by 2002:a05:600c:6098:b0:48f:d1b8:9ab1 with SMTP id 5b1f17b1804b1-48fe60ecc51mr68749495e9.9.1778857075183; Fri, 15 May 2026 07:57:55 -0700 (PDT) Received: from my-vps.. (ip212-227-39-93.pbiaas.com. [212.227.39.93]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48fe5ab527asm76096135e9.11.2026.05.15.07.57.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 07:57:54 -0700 (PDT) From: Louis Clinckx To: "Derek J . Clark" , Mark Pearson , Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] HID: lenovo-go: reject non-USB transports in probe Date: Fri, 15 May 2026 14:57:39 +0000 Message-Id: X-Mailer: git-send-email 2.39.5 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" These drivers only match HID_USB_DEVICE() entries and assume the underlying bus is USB. Make that explicit at probe by rejecting any non-USB hdev, following the pattern used by other HID drivers. Signed-off-by: Louis Clinckx Reviewed-by: Derek J. Clark Tested-by: Derek J. Clark --- drivers/hid/hid-lenovo-go-s.c | 3 +++ drivers/hid/hid-lenovo-go.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/hid/hid-lenovo-go-s.c b/drivers/hid/hid-lenovo-go-s.c index 01c7bdd4f..abf477e68 100644 --- a/drivers/hid/hid-lenovo-go-s.c +++ b/drivers/hid/hid-lenovo-go-s.c @@ -1432,6 +1432,9 @@ static int hid_gos_probe(struct hid_device *hdev, { int ret, ep; =20 + if (!hid_is_usb(hdev)) + return -EINVAL; + ret =3D hid_parse(hdev); if (ret) { hid_err(hdev, "Parse failed\n"); diff --git a/drivers/hid/hid-lenovo-go.c b/drivers/hid/hid-lenovo-go.c index d4d26c783..3fa1fe83f 100644 --- a/drivers/hid/hid-lenovo-go.c +++ b/drivers/hid/hid-lenovo-go.c @@ -2419,6 +2419,9 @@ static int hid_go_probe(struct hid_device *hdev, cons= t struct hid_device_id *id) { int ret, ep; =20 + if (!hid_is_usb(hdev)) + return -EINVAL; + hdev->quirks |=3D HID_QUIRK_INPUT_PER_APP | HID_QUIRK_MULTI_INPUT; =20 ret =3D hid_parse(hdev); --=20 2.39.5 From nobody Mon May 25 08:10:53 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27C7A3BFAD3 for ; Fri, 15 May 2026 14:57:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778857080; cv=none; b=Y/GlE6qscv45p6cg4xIvCKET70Lkex8EpSP7jrZvaKbCdMIE54pUzEBhhBwbmNTMgLCeDGTG4sEDhVcf+3Xj8VvFnyW5PFfu83WSzVPMp9ph0fgJf3cKxENPxYe226iJk80To5dlH9h2+Vs6gzOccIBwPATN+Oj8JUL16wNZ4dA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778857080; c=relaxed/simple; bh=q1rlFt7jJnHIsxhi6tG1D4vQom1TCpRJxsOOyqH9ziQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Wdbf+nIqCjXaxZ5TEW3T47uXXJEAsLAuLdb9MpL0n+QOYZPq3wtne5ax3hnWE2jSsDsFKg3qG3mV6TC3bh8bP1VFkq9GAym4jZRXJUWfobo7SBXH2nBfzhsUhgZryWVgSfruI6R3EoeR6ssT8eEW1GIkGlkSPRKgC0siGrU8DXM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jcs5oi8K; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jcs5oi8K" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-488b0e1b870so153754015e9.2 for ; Fri, 15 May 2026 07:57:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778857076; x=1779461876; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YgTukckjUaag6yoExp0Fh4OX9Oq6SoZIofNpA/0vdMQ=; b=jcs5oi8KhrmQ3T2aZEXpqwF73RRZ9Hc7UdiuWYl1+SFAHR+flC7VxRNbpCzzymAH0g 1m6ZMQJQSCtM4v+Dve0BXsyO9rQ8U/pG77G4CB+yAuEmEvkq7WZTHFhnwEjD3FHyuslJ imwXUlyVUc5VjBZ9rHhgeWG4KtDeJV4TqJjfUgU5lfrloiDwPjuCbeEb7RIPeRiGCKkT KVgIsAzzqHhbNuM3AZRfzfS2IDt/mdBGbKKDrI0AwMA6acQgQ+hfiKMq3ILX4hlUx9gv lIyO2ME2QDeb8x6HqL+9fXIwgtN5WjhZqx3oaHVXKfMCYPnpsOxjSwVOMBVy21+Ewmnk N5MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778857076; x=1779461876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YgTukckjUaag6yoExp0Fh4OX9Oq6SoZIofNpA/0vdMQ=; b=HxaeZ0pgvihFt6Flr5TbDfh0oAFBct7mW8vBgR0DhMOLTYTUuj+rV887E53/0dhmmI /lqsyyaNPuTudm8ws8JMohArQz1CfeisGi+U+9KuUK5jik5AzbGo4sjE86H91QN2YtCT ohEGFC4Bh1sH/X3NcokASi3L2VsYZUSbkSZQCFFhVOkIFPAD0eKbxAyPHYM8iAyQBBmi Bjt1/8+vhdQXMDyKuQM6Nt6jqFYLwUXY+D/DTybhOkDMrmzS9SKgMfgceTM5bo21nuyi 4cPTBDNYJTaFZgFlc0MH5QDL/tnSkQwU6yA+OKvghjc8nDwpoTjPQBA9qHe5YTmghPrQ pkUA== X-Forwarded-Encrypted: i=1; AFNElJ/F75jO29ZgrmrRQpwIcGjGPCt1M+CgSzOutTp3r5dC/ui4GF1Yj6BSwSsoO7QA2ibIq/b0pDd4Z5jfAAc=@vger.kernel.org X-Gm-Message-State: AOJu0YyguCFoI1BmXBdyCHU5gr+jQJYYq1Kk2V6DgH+/1y1zn88YjLI6 263U2dqL0LWjNY4vV4qFN5SFldAH9rJY2fouTwMf+GLmgf+p2vYCFbHy X-Gm-Gg: Acq92OEUjNLbMaOv+L9Ks1jrTBUbPuEoxiHmvAuwvwaComWl8P7pu1lH3a1LQVyY/PQ 6InIsA28H4XrzSlL83d6Dp4Yjv0zVP8lMa5PRO9zLZUuLJWyr75qfr/JQO/gzWqCiuY9m1Obc9L Q3m15YLQa0rZw9EZwJUsWSp/UkBF2DQwEhJZIW1B3veYfBucvtcqa51f7eXfYFoIS0Ko/9ZJm2G Slhh3NBXgCyw1YzMU4qqHEcWb/+CjUM4iMOYe/z1f4wkQQFXszQXaZd9lcOZL80TPvMFNjBStXv 90zATJjaK7lclDxMFd7oq1E1u0WDnBa1bL1HkJ13/aV2t80xqX8cg8jb9uxv6v1yRnwM8jYjzIM wUe7Y4n1wKL+WaDOAr1QxCd7lgEe8MJobbu28c3tSgf4GcY57wSIyt4laqw6+KapUCtE8IVXNu7 mHZEPJs1oQ8c7e6BmU4cuByHGAcwJCvx8Ba7tnBs+1Ntt0PrJL7Kpu0vFUynhfHLImfGKj8rcDd btROjEiWE59mmcPKUX9RLHcBUlWHkgvHBMfarSxN7zDJmN/hMDxYN+MfYeOPcWAIOSU8w== X-Received: by 2002:a05:600c:198d:b0:487:5c0:671f with SMTP id 5b1f17b1804b1-48fe60e552cmr68673165e9.9.1778857076250; Fri, 15 May 2026 07:57:56 -0700 (PDT) Received: from my-vps.. (ip212-227-39-93.pbiaas.com. [212.227.39.93]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48fe5ab527asm76096135e9.11.2026.05.15.07.57.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 07:57:55 -0700 (PDT) From: Louis Clinckx To: "Derek J . Clark" , Mark Pearson , Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] HID: lenovo-go: drop dead NULL check on to_usb_interface() Date: Fri, 15 May 2026 14:57:40 +0000 Message-Id: <66162775a1a939891fde1a96660825df6f3188ca.1778701376.git.clinckx.louis@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" to_usb_interface() is a container_of_const() macro: it performs pointer arithmetic and never returns NULL. The if (!intf) and if (intf) tests in get_endpoint_address() can never fire. Remove them in both drivers. No functional change. Suggested-by: Derek J. Clark Signed-off-by: Louis Clinckx Reviewed-by: Derek J. Clark Tested-by: Derek J. Clark --- drivers/hid/hid-lenovo-go-s.c | 8 +++----- drivers/hid/hid-lenovo-go.c | 3 --- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/hid/hid-lenovo-go-s.c b/drivers/hid/hid-lenovo-go-s.c index abf477e68..f44aeb2c1 100644 --- a/drivers/hid/hid-lenovo-go-s.c +++ b/drivers/hid/hid-lenovo-go-s.c @@ -382,11 +382,9 @@ static int get_endpoint_address(struct hid_device *hde= v) struct usb_interface *intf =3D to_usb_interface(hdev->dev.parent); struct usb_host_endpoint *ep; =20 - if (intf) { - ep =3D intf->cur_altsetting->endpoint; - if (ep) - return ep->desc.bEndpointAddress; - } + ep =3D intf->cur_altsetting->endpoint; + if (ep) + return ep->desc.bEndpointAddress; =20 return -ENODEV; } diff --git a/drivers/hid/hid-lenovo-go.c b/drivers/hid/hid-lenovo-go.c index 3fa1fe83f..e0c9d5ec9 100644 --- a/drivers/hid/hid-lenovo-go.c +++ b/drivers/hid/hid-lenovo-go.c @@ -641,9 +641,6 @@ static int get_endpoint_address(struct hid_device *hdev) struct usb_interface *intf =3D to_usb_interface(hdev->dev.parent); struct usb_host_endpoint *ep; =20 - if (!intf) - return -ENODEV; - ep =3D intf->cur_altsetting->endpoint; if (!ep) return -ENODEV; --=20 2.39.5