From nobody Fri Dec 19 11:06:34 2025 Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) (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 7FA8617B50A for ; Sun, 13 Apr 2025 07:32:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529570; cv=none; b=BkLHBt7EjGElvFe9iDZbipXU2/PL1eoK4D0T7ASKKS/CsHJG2foUglwKte2MkDvRR7vtwqTtIJbb7ONXJkb4s2lelsHNwv5iuKExaE7v7xxjaREL8b1Rhb7a/NcaNEw+sh07hj5UchJ3HhLIpCzGvUJrt74Uq5qT4MN/ZT2UxD8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529570; c=relaxed/simple; bh=noTGHob0U3nCMmX6ggPvoPttAsBMb3SkzDTyGuKAQlE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e87V0eVXV0ahoZUWBq8QOdNiY5EUhb+5wBGevAQi0c/jwle8nW8G3H48WOla4/k7aNpbYzZ3hYmNM9ipykVMcTu2jf2HOJdoueOJmwck7JyWS/7XGLVJTncjZrosgU5Bnix//0Tziqpg6k14M46FyhJlBRVDJJglCANv7ZzEyK0= 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=LopsedH3; arc=none smtp.client-ip=209.85.160.194 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="LopsedH3" Received: by mail-qt1-f194.google.com with SMTP id d75a77b69052e-476a720e806so29568351cf.0 for ; Sun, 13 Apr 2025 00:32:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744529565; x=1745134365; 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=M4007EJtTTw4rTvfv0n1SalSLJtmVlRpzu0mtepvnyg=; b=LopsedH35a30uyzfXWWygL6FQiEdVQYFEFjOO1tw393URuMYzm5hlp8QyzWeyizydj 0+STmmsl3y4iPvkoEvBrbpBL76yl5cLvv4RObtQ16qae73ZtFymJAHiJlHod1NailvpK 0G7XdPoP7lWP6Klv8E+jeyqTEshdC4jrGzm/6X/Iw2lIGATtduIsU0ATKSx5fJVbx16N msdCeZUDbmTi1Vqebdx8s1LOnwSCU26iN2IBnwR8QWw37PME3Cb+c2CD+9eZarcX9ZKa 3irumX0VLzMtpHeSiKt9douaIEJbKiBIUEYpjjafuOVyuzOe0TmpRy7eIp0kQ2bP/V6g zvPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744529565; x=1745134365; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M4007EJtTTw4rTvfv0n1SalSLJtmVlRpzu0mtepvnyg=; b=uRYEZhMxT25hiQKV/re1Lx0POpLMob5AYpG+BLACIgnoAJDtcZzpBGq92Xxh63kJel iABisFuRqnLZ0wJie12G4n6o2KnEYqeRRaO/Ma5hVcLbJqY2TmLbhWKx/TQpIkJR+DuN hIYJkLBhRCoJGxMTr4TzlLv6DKoEAHeNNmO+TfQJqVC8bQZBbEaqx6Kvbouj/03YK1+S Eo2/od8p16QSLMfdJNPmXgsxKNW6evZsG7tEsX380hGXq9cRFMOf59O9W7LTVWpYO7n4 KSk0wfjr/LP5t/kkKUetJcSXq8Ts/xCOGE2nmeMDCU+AvX7VwA7GZuYGmUqrGCmJUJXt yKJQ== X-Forwarded-Encrypted: i=1; AJvYcCUtt4DiUt6bFXgWWQWPpnVUPeO4ceO4cjLNoZf+3a1wrsp4HXG4rUADOJEAVK0gnD++9AL2IGWNAkmLGbA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2tPKet0P6XSK9anwq33ejJN1nhb5UL4VfnF7Ge67iVSAv3+rN b3T1R1Af/wXliaqNXiEnfAzRo8PF2AnCcZNZ8oVWnkoq2uKlQlzt X-Gm-Gg: ASbGnctgcBL7Ylaz/6lFDcJj4UnKCBqiE7tajuELeua4curhFHYmutcne0WCFSxhf68 wlOMUGILxXumpWV0n5p5I1iSDEjbDGXMvKIFV1tDhGUoCM0x3S286JJNUclaxJYIemaAT2NlFqW 8S31ttkfG9WXu4wXO2IqXDNFoi6iOhhMG5fvxUHt4yPHDM24HeMAnwKBSnM1BCcNStjxeMUndsa r9UVibZnI732JRhp2E77IbrGZiOruUu3Ox0bODIQl18d1UZagYsocqXgnZQbXV2VNMkVU5F2Qfi ANIv1z+PKZE5UcmG9oUVz8H9YPN+dekGiEssXW69xjJdPC7MoOM6QmxX3meWmy9Au0oNudbULUy A2vjYyS+g8vt7dwG+QJKKyc4amtn2 X-Google-Smtp-Source: AGHT+IFIabePYRIYtpcxXzaSMqqVPGq5rSARcMVUANBjoA+ZM+7MttbdYWxqjnd1rND1XEHRjhJRxQ== X-Received: by 2002:a05:622a:352:b0:476:8588:cead with SMTP id d75a77b69052e-47977551ea9mr100615211cf.17.1744529565199; Sun, 13 Apr 2025 00:32:45 -0700 (PDT) Received: from UbuntuDev.. (syn-074-067-077-020.res.spectrum.com. [74.67.77.20]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4796eb0b58csm52142401cf.2.2025.04.13.00.32.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Apr 2025 00:32:44 -0700 (PDT) From: Ganesh Kumar Pittala To: johan@kernel.org, elder@kernel.org, gregkh@linuxfoundation.org Cc: greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, hvaibhav.linux@gmail.com, vaibhav.sr@gmail.com, mgreer@animalcreek.com, rmfrfs@gmail.com, pure.logic@nexus-software.ie, ganeshkpittala@gmail.com Subject: [PATCH v2 1/4] staging: greybus: replace deprecated strncpy with strscpy in firmware.c Date: Sun, 13 Apr 2025 07:32:17 +0000 Message-ID: <20250413073220.15931-2-ganeshkpittala@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250413073220.15931-1-ganeshkpittala@gmail.com> References: <20250413073220.15931-1-ganeshkpittala@gmail.com> 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" This patch replaces the use of the deprecated strncpy() function with strscpy() in drivers/staging/greybus/Documentation/firmware/firmware.c. The strscpy() API is the recommended safer alternative that guarantees NUL-termination and avoids potential buffer overflows, making it more robust for handling string operations in kernel space. This change improves code safety and aligns the driver with current kernel coding practices. Signed-off-by: Ganesh Kumar Pittala --- drivers/staging/greybus/Documentation/firmware/firmware.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/greybus/Documentation/firmware/firmware.c b/dr= ivers/staging/greybus/Documentation/firmware/firmware.c index 765d69faa9cc..f37904b914d2 100644 --- a/drivers/staging/greybus/Documentation/firmware/firmware.c +++ b/drivers/staging/greybus/Documentation/firmware/firmware.c @@ -63,7 +63,7 @@ static int update_intf_firmware(int fd) intf_load.major =3D 0; intf_load.minor =3D 0; =20 - strncpy((char *)&intf_load.firmware_tag, firmware_tag, + strscpy((char *)&intf_load.firmware_tag, firmware_tag, GB_FIRMWARE_U_TAG_MAX_SIZE); =20 ret =3D ioctl(fd, FW_MGMT_IOC_INTF_LOAD_AND_VALIDATE, &intf_load); @@ -101,7 +101,7 @@ static int update_backend_firmware(int fd) /* Get Backend Firmware Version */ printf("Getting Backend Firmware Version\n"); =20 - strncpy((char *)&backend_fw_info.firmware_tag, firmware_tag, + strscpy((char *)&backend_fw_info.firmware_tag, firmware_tag, GB_FIRMWARE_U_TAG_MAX_SIZE); =20 retry_fw_version: @@ -129,7 +129,7 @@ static int update_backend_firmware(int fd) /* Try Backend Firmware Update over Unipro */ printf("Updating Backend Firmware\n"); =20 - strncpy((char *)&backend_update.firmware_tag, firmware_tag, + strscpy((char *)&backend_update.firmware_tag, firmware_tag, GB_FIRMWARE_U_TAG_MAX_SIZE); =20 retry_fw_update: --=20 2.43.0 From nobody Fri Dec 19 11:06:34 2025 Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (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 5E55215990C for ; Sun, 13 Apr 2025 07:32:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529572; cv=none; b=tKhEvsjbA2OhCfPaR7NT9GJ8KTvI1tOwi/M6IKbBjlo1fL0u+KJLgrdG4hcALfA09OrG9haInAS+Ttkbfe3UcglF3piyu8C1hLuKWPjJRYGLk2KtzU6cXHTHkkBixObrTVo1xZZigwWMLmBGaatb7wq+v/NOdN2I7GZwSwFJXOs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529572; c=relaxed/simple; bh=fehAY3yC24ro6+vZ6beyRqMUmWTlnkKTJtJoxqInxag=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LzDuLVmVzBTRkK0DWw/nikeMbgK4+H5qGwiX6szQVNTA1V2f30U9RXiYlPkdB2ucRTu6SZLWilpUwcm0b5C7Yq4yofvmMYwrzdT2aAEdSEzpiNCmkLqG3/whLTX+EvOArlxWaeHvxrvxTxE96tEgpp7pQJrnLeyV4BDe6yxl+2Y= 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=ctmz3hHo; arc=none smtp.client-ip=209.85.160.195 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="ctmz3hHo" Received: by mail-qt1-f195.google.com with SMTP id d75a77b69052e-4766631a6a4so30162901cf.2 for ; Sun, 13 Apr 2025 00:32:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744529568; x=1745134368; 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=cjFyocYzTktppiP9pnTPpA+jTKDR4/yXZeC89Tb5gFw=; b=ctmz3hHoiD9pV8S0X50h5GwemuZ6LGaO7FM4XkI9uLwKI0Ne7RKsGA1uIxkALDQx9L 9tDGicNGe5gsD52dXXvphOFV1CnG3oI2QwQE9OvQDXhzXQK+f7atVBWC2rq4MOmhqbE4 XowZ/2KaMynuRLJ6IXkE25Hv/UfNEGS0XcyN3w1Kuhsly0hvemor0ruIPJUwdZOWTOVI KZ6zaD586C/Ww7gq70NwRv93rMq2D9mMuaMOtE5T5gLWKtB2Zp8TGrOJRwun0aqqdsiQ J13ca6efW1V4zNceu8nRPEmI/4vjCqKSeGsHoHXIKq2VlCtrejKKDis2GoYZKqVmR2hN sA1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744529568; x=1745134368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cjFyocYzTktppiP9pnTPpA+jTKDR4/yXZeC89Tb5gFw=; b=plu8ZKLK+1dg83f8nmxp6A+ark5jS7W31TknaA527LFx8BF/Om2R3ANuL29oNh1661 T7Z180xiCgsXWHnVW4qCbqMNE64VZPm/ELd8F7VR7N5lxH6d+ciZIywChXYNelBXz9+d UIauaNxwIz6QUFgPYU3GRLhfmJVAacV2zVxnRFh0sQZA8nchQQQtmVG3/ZtWBmgTWWYY fypZez5ZXDXDxjhN1qSdZl1iMBLTfdPBoo6pcDGJGziKJUL2hVL0rJ+KKk2AWUtrEoyL SOFxKwUmL2MRewHyw/g+rMuFVjJr4LOxt7A5NnzTaklgl+1jAlPUAu8YnrTOctcNaCmo ebrg== X-Forwarded-Encrypted: i=1; AJvYcCUCcjEbsei2aXsrpDIEIqytPycXAr9Gajtz4GhE5pXgaeNNePzjbrqyzsCNbnzcIdXZwf9Nut5s8xHRAeQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzVPoBq9PeGMhJgYhSZcRypikjZyf0/ya0mpGSfNbt52M0OH7Sl R8oIfoGgt3gmr2EOAJ+1moM2EjuLNPNzRsIfiGBSxDW7TJcoWwnTO/Eq9tKmS5964g== X-Gm-Gg: ASbGncunm3vt4QKYjmKA8Uv6xl1Xyngjgk+Cb8fKeoyTYIMcW1TFGk4Sp4o4HhavLq2 F3c9qgYrEI4CfBe/eh5SJEiJia06yqvgbU/QkYSxroLVt05dBxs2iW4nVqJzpAzsSei+rnGGxDB nbYcptbC4Cy1wDzKWjZwO+X1j32EvjBCVz/uayELMX5iJdWCy71rTZ1+YLCyO/V5YgDuHWraMF/ mcLMnU5Gdn+IILF/neRS6lXPr70Vd4ArzDrKzsdplPCNete8QWyzcd3JMPK/t+yA9/wE2tDhBsR hyrsy9kT/sGPy6JJfTPBoZcsDDFGAlhxiKr8ZXnSPDGtYqki19pVZL8bJEbma5VRADjwgAbSEv2 HeUne5ns41O98wkydZQ== X-Google-Smtp-Source: AGHT+IGpMWIVWiaLD+lZUi3FoY3HlefhbjuHhYs+GY72x7GKKVsUGlazfJiv8se0ZguiIp9mskaJEg== X-Received: by 2002:a05:622a:592:b0:474:fab0:6564 with SMTP id d75a77b69052e-479775d5f9bmr121885351cf.37.1744529568160; Sun, 13 Apr 2025 00:32:48 -0700 (PDT) Received: from UbuntuDev.. (syn-074-067-077-020.res.spectrum.com. [74.67.77.20]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4796eb0b58csm52142401cf.2.2025.04.13.00.32.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Apr 2025 00:32:47 -0700 (PDT) From: Ganesh Kumar Pittala To: johan@kernel.org, elder@kernel.org, gregkh@linuxfoundation.org Cc: greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, hvaibhav.linux@gmail.com, vaibhav.sr@gmail.com, mgreer@animalcreek.com, rmfrfs@gmail.com, pure.logic@nexus-software.ie, ganeshkpittala@gmail.com Subject: [PATCH v2 2/4] staging: greybus: replace sprintf with sysfs_emit in sysfs show functions Date: Sun, 13 Apr 2025 07:32:18 +0000 Message-ID: <20250413073220.15931-3-ganeshkpittala@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250413073220.15931-1-ganeshkpittala@gmail.com> References: <20250413073220.15931-1-ganeshkpittala@gmail.com> 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" This patch replaces deprecated uses of sprintf() with the safer sysfs_emit() helper in multiple sysfs show functions across the Greybus staging drivers. The sysfs_emit() API is designed specifically for sysfs usage and ensures proper formatting, length checks, and termination, aligning with current kernel best practices. Affected files: - audio_manager_module.c - loopback.c (sysfs-related only) - arche-platform.c - arche-apb-ctrl.c - light.c - gbphy.c Signed-off-by: Ganesh Kumar Pittala --- drivers/staging/greybus/arche-apb-ctrl.c | 11 ++++++----- drivers/staging/greybus/arche-platform.c | 11 ++++++----- drivers/staging/greybus/audio_manager_module.c | 13 +++++++------ drivers/staging/greybus/gbphy.c | 3 ++- drivers/staging/greybus/light.c | 5 +++-- drivers/staging/greybus/loopback.c | 15 ++++++++------- 6 files changed, 32 insertions(+), 26 deletions(-) diff --git a/drivers/staging/greybus/arche-apb-ctrl.c b/drivers/staging/gre= ybus/arche-apb-ctrl.c index 90ab32638d3f..9862188e8367 100644 --- a/drivers/staging/greybus/arche-apb-ctrl.c +++ b/drivers/staging/greybus/arche-apb-ctrl.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "arche_platform.h" =20 static void apb_bootret_deassert(struct device *dev); @@ -299,16 +300,16 @@ static ssize_t state_show(struct device *dev, =20 switch (apb->state) { case ARCHE_PLATFORM_STATE_OFF: - return sprintf(buf, "off%s\n", + return sysfs_emit(buf, "off%s\n", apb->init_disabled ? ",disabled" : ""); case ARCHE_PLATFORM_STATE_ACTIVE: - return sprintf(buf, "active\n"); + return sysfs_emit(buf, "active\n"); case ARCHE_PLATFORM_STATE_STANDBY: - return sprintf(buf, "standby\n"); + return sysfs_emit(buf, "standby\n"); case ARCHE_PLATFORM_STATE_FW_FLASHING: - return sprintf(buf, "fw_flashing\n"); + return sysfs_emit(buf, "fw_flashing\n"); default: - return sprintf(buf, "unknown state\n"); + return sysfs_emit(buf, "unknown state\n"); } } =20 diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/gre= ybus/arche-platform.c index d48464390f58..2e706c1169d5 100644 --- a/drivers/staging/greybus/arche-platform.c +++ b/drivers/staging/greybus/arche-platform.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "arche_platform.h" =20 #if IS_ENABLED(CONFIG_USB_HSIC_USB3613) @@ -374,15 +375,15 @@ static ssize_t state_show(struct device *dev, =20 switch (arche_pdata->state) { case ARCHE_PLATFORM_STATE_OFF: - return sprintf(buf, "off\n"); + return sysfs_emit(buf, "off\n"); case ARCHE_PLATFORM_STATE_ACTIVE: - return sprintf(buf, "active\n"); + return sysfs_emit(buf, "active\n"); case ARCHE_PLATFORM_STATE_STANDBY: - return sprintf(buf, "standby\n"); + return sysfs_emit(buf, "standby\n"); case ARCHE_PLATFORM_STATE_FW_FLASHING: - return sprintf(buf, "fw_flashing\n"); + return sysfs_emit(buf, "fw_flashing\n"); default: - return sprintf(buf, "unknown state\n"); + return sysfs_emit(buf, "unknown state\n"); } } =20 diff --git a/drivers/staging/greybus/audio_manager_module.c b/drivers/stagi= ng/greybus/audio_manager_module.c index 4a4dfb42f50f..781144be4eec 100644 --- a/drivers/staging/greybus/audio_manager_module.c +++ b/drivers/staging/greybus/audio_manager_module.c @@ -6,6 +6,7 @@ */ =20 #include +#include =20 #include "audio_manager.h" #include "audio_manager_private.h" @@ -76,7 +77,7 @@ static void gb_audio_module_release(struct kobject *kobj) static ssize_t gb_audio_module_name_show(struct gb_audio_manager_module *m= odule, struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "%s", module->desc.name); + return sysfs_emit(buf, "%s\n", module->desc.name); } =20 static struct gb_audio_manager_module_attribute gb_audio_module_name_attri= bute =3D @@ -85,7 +86,7 @@ static struct gb_audio_manager_module_attribute gb_audio_= module_name_attribute =3D static ssize_t gb_audio_module_vid_show(struct gb_audio_manager_module *mo= dule, struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "%d", module->desc.vid); + return sysfs_emit(buf, "%d\n", module->desc.vid); } =20 static struct gb_audio_manager_module_attribute gb_audio_module_vid_attrib= ute =3D @@ -94,7 +95,7 @@ static struct gb_audio_manager_module_attribute gb_audio_= module_vid_attribute =3D static ssize_t gb_audio_module_pid_show(struct gb_audio_manager_module *mo= dule, struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "%d", module->desc.pid); + return sysfs_emit(buf, "%d\n", module->desc.pid); } =20 static struct gb_audio_manager_module_attribute gb_audio_module_pid_attrib= ute =3D @@ -104,7 +105,7 @@ static ssize_t gb_audio_module_intf_id_show(struct gb_a= udio_manager_module *modu struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "%d", module->desc.intf_id); + return sysfs_emit(buf, "%d\n", module->desc.intf_id); } =20 static struct gb_audio_manager_module_attribute @@ -115,7 +116,7 @@ static ssize_t gb_audio_module_ip_devices_show(struct g= b_audio_manager_module *m struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "0x%X", module->desc.ip_devices); + return sysfs_emit(buf, "0x%X\n", module->desc.ip_devices); } =20 static struct gb_audio_manager_module_attribute @@ -126,7 +127,7 @@ static ssize_t gb_audio_module_op_devices_show(struct g= b_audio_manager_module *m struct gb_audio_manager_module_attribute *attr, char *buf) { - return sprintf(buf, "0x%X", module->desc.op_devices); + return sysfs_emit(buf, "0x%X\n", module->desc.op_devices); } =20 static struct gb_audio_manager_module_attribute diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbph= y.c index 6adcad286633..72d72aa7cb0f 100644 --- a/drivers/staging/greybus/gbphy.c +++ b/drivers/staging/greybus/gbphy.c @@ -14,6 +14,7 @@ #include #include #include +#include =20 #include "gbphy.h" =20 @@ -31,7 +32,7 @@ static ssize_t protocol_id_show(struct device *dev, { struct gbphy_device *gbphy_dev =3D to_gbphy_dev(dev); =20 - return sprintf(buf, "0x%02x\n", gbphy_dev->cport_desc->protocol_id); + return sysfs_emit(buf, "0x%02x\n", gbphy_dev->cport_desc->protocol_id); } static DEVICE_ATTR_RO(protocol_id); =20 diff --git a/drivers/staging/greybus/light.c b/drivers/staging/greybus/ligh= t.c index e509fdc715db..db0e98faec08 100644 --- a/drivers/staging/greybus/light.c +++ b/drivers/staging/greybus/light.c @@ -12,6 +12,7 @@ #include #include #include +#include #include =20 #define NAMES_MAX 32 @@ -173,7 +174,7 @@ static ssize_t fade_##__dir##_show(struct device *dev, = \ struct led_classdev *cdev =3D dev_get_drvdata(dev); \ struct gb_channel *channel =3D get_channel_from_cdev(cdev); \ \ - return sprintf(buf, "%u\n", channel->fade_##__dir); \ + return sysfs_emit(buf, "%u\n", channel->fade_##__dir); \ } \ \ static ssize_t fade_##__dir##_store(struct device *dev, \ @@ -220,7 +221,7 @@ static ssize_t color_show(struct device *dev, struct de= vice_attribute *attr, struct led_classdev *cdev =3D dev_get_drvdata(dev); struct gb_channel *channel =3D get_channel_from_cdev(cdev); =20 - return sprintf(buf, "0x%08x\n", channel->color); + return sysfs_emit(buf, "0x%08x\n", channel->color); } =20 static ssize_t color_store(struct device *dev, struct device_attribute *at= tr, diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/l= oopback.c index 1f19323b0e1a..c194afea941a 100644 --- a/drivers/staging/greybus/loopback.c +++ b/drivers/staging/greybus/loopback.c @@ -26,6 +26,7 @@ #include #include #include +#include #include =20 #define NSEC_PER_DAY 86400000000000ULL @@ -125,7 +126,7 @@ static ssize_t field##_show(struct device *dev, \ char *buf) \ { \ struct gb_loopback *gb =3D dev_get_drvdata(dev); \ - return sprintf(buf, "%u\n", gb->field); \ + return sysfs_emit(buf, "%u\n", gb->field); \ } \ static DEVICE_ATTR_RO(field) =20 @@ -137,8 +138,8 @@ static ssize_t name##_##field##_show(struct device *dev= , \ struct gb_loopback *gb =3D dev_get_drvdata(dev); \ /* Report 0 for min and max if no transfer succeeded */ \ if (!gb->requests_completed) \ - return sprintf(buf, "0\n"); \ - return sprintf(buf, "%" #type "\n", gb->name.field); \ + return sysfs_emit(buf, "0\n"); \ + return sysfs_emit(buf, "%" #type "\n", gb->name.field); \ } \ static DEVICE_ATTR_RO(name##_##field) =20 @@ -158,7 +159,7 @@ static ssize_t name##_avg_show(struct device *dev, \ rem =3D do_div(avg, count); \ rem *=3D 1000000; \ do_div(rem, count); \ - return sprintf(buf, "%llu.%06u\n", avg, (u32)rem); \ + return sysfs_emit(buf, "%llu.%06u\n", avg, (u32)rem); \ } \ static DEVICE_ATTR_RO(name##_avg) =20 @@ -173,7 +174,7 @@ static ssize_t field##_show(struct device *dev, \ char *buf) \ { \ struct gb_loopback *gb =3D dev_get_drvdata(dev); \ - return sprintf(buf, "%" #type "\n", gb->field); \ + return sysfs_emit(buf, "%" #type "\n", gb->field); \ } \ static ssize_t field##_store(struct device *dev, \ struct device_attribute *attr, \ @@ -199,7 +200,7 @@ static ssize_t field##_show(struct device *dev, \ char *buf) \ { \ struct gb_loopback *gb =3D dev_get_drvdata(dev); \ - return sprintf(buf, "%u\n", gb->field); \ + return sysfs_emit(buf, "%u\n", gb->field); \ } \ static DEVICE_ATTR_RO(field) =20 @@ -209,7 +210,7 @@ static ssize_t field##_show(struct device *dev, \ char *buf) \ { \ struct gb_loopback *gb =3D dev_get_drvdata(dev); \ - return sprintf(buf, "%" #type "\n", gb->field); \ + return sysfs_emit(buf, "%" #type "\n", gb->field); \ } \ static ssize_t field##_store(struct device *dev, \ struct device_attribute *attr, \ --=20 2.43.0 From nobody Fri Dec 19 11:06:34 2025 Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (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 DDC1318A95A for ; Sun, 13 Apr 2025 07:32:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529574; cv=none; b=cGwSrBCuyUu06JV1ce7Wqa3HAoYIyevUU9X81blxoe8eyk1SyctjZDIoEAI58mIlEaGc2h3vqh2aEIe+yePdOFxyfv4N0L7Y4aWYATldsh/9X4H2Kq08blzoX9JG4Rwc2ziuesbOWCCDXE6TT/VENtzn2EE8pl/23o4UoQyLOQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529574; c=relaxed/simple; bh=Hj77r4cZerWuVUCWJBhvlhNrpoiETEOAraEvo2HS0KA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oqc8jAZjVRk4EF20IfxDBgwvs6KMsA9eJT31H4cjynYM15cCXVu6xf639FCrMUNE5Nt/Hl2bgetqOJeRvoztHmvQUaHKIugN8UJutMUz0sqK04/YU6JGbla1Uvo9gf0gxiCI0sSbQFgttlW8R1CqNsHksMx1GCXsNf9VN/7u+Bc= 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=UAuDhEdQ; arc=none smtp.client-ip=209.85.160.193 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="UAuDhEdQ" Received: by mail-qt1-f193.google.com with SMTP id d75a77b69052e-476964b2c1dso59384741cf.3 for ; Sun, 13 Apr 2025 00:32:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744529572; x=1745134372; 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=3uby1Q+b765/55h4CWBlJtND/wv5GPZpZ5T+Fpb9xa8=; b=UAuDhEdQCMaLguj2iiWWmhUli5PPjUyS53XBN/UG37PVpvARAGD8UjbuOk5pF1c9jR 5mmEj04bvESeVPG4Ms5iJSsmGakMurtpu3bJjNyonisUmr09rMnypHjV+In+yYIeUjaI xbSqzbyNpiteCN7CHgQ9CwtzeGigdjpviw6W6vZmAKzp1otkOFtbmHTf4No3KOqaSpsd qNLiP+bFS2Lhn/2G+HxT72URBt2n0WzOst7LWZgl6XGPvML+RQkNkBFKHb7wCUIdrQZO /lPIS6HDpudZY+gjWCGLqIzk3/KJRfc4psfbnOURtmSzt1lNBHWEMM8WU3IEhBzj5Q95 Pf+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744529572; x=1745134372; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3uby1Q+b765/55h4CWBlJtND/wv5GPZpZ5T+Fpb9xa8=; b=GheWCUJIr/7lC1PAQ0mqqIb1NIFPaaZEBMn7hzLxU7G2uRnu+EyYKvRRVrhlGzM/fz UZwaU/MENyDFQn9v3UqG/GaNuxUiFVuej4kkboDFTwjuH1DvYtFkR1lONVqKnzJjcxEz 2wjVsoOt7lYYhgEf30jaegDXKsEyXDainjKKlTx6N+SZzDrCnroG5yw0f9bMjefc6Za3 nMvQIA3xPEAvWLbn+/4aWvMLffe7R4ym2TBjW9Nji8wO1zhE2cDh3QmQDLWpe9MLcYun NbnLWLV6bkpys98mNtPasXe6rVOFcTRsa+fyBiuLDrG13CpvHOuhCLQ0TV2uKcCPEtCg ViZA== X-Forwarded-Encrypted: i=1; AJvYcCWNVS4UZiahIF9vulZvi/VW9FirDOYY8C5N3AY213sjxL1k7qrdbmEQFaxPgucG39iI1s1HlWb5reMFs/c=@vger.kernel.org X-Gm-Message-State: AOJu0Yw58J7j8Lqy82fpxFQ81/DiSTp+6OWfMYpSfAy9w25sNtGc4Zuo cY7JhVzcnAClrxG91+fOnFbCSXKqPK6HLcyPW9ONQj2Xi7B+udb5 X-Gm-Gg: ASbGncu/+OzyuYV3kY+c6N27suC6kQpB9UGnghQGMVNpLvuHCGZB7QlooSXXWrmDkmT rjEk9Ji81oWjBJqPlQAZA6sn/179o/J05l12YMPpcFXmiCEmKsUhkk1YjqBTRcZV9jqz+be9CoL 9WnH3AnhepU3fXWkFn0J9HvlqL8dCvB8M01zZbX/Enq7oiLJuM+tK2t5qyb2/r1gTq7Ovlj8n9z IxGg9SREQywNGgrl8oPfk3GNce4RiGYXHTIfgPLArknPH4fcbfQ2iPdosoX6cm472PYAgWZS4PB 7VYdJXoeUK6FiuNpxOLLWx93sXBiS6T/U+ytU9LoPaaYqinx5Hp5DdmooXYl98taUqzmeu3TU7f 9+8x7OcBzlxp4Nt62LA== X-Google-Smtp-Source: AGHT+IHRArwDsyiOHSw0uFQ2zMdIEQRmtTDX1Ac43R0yu6Md3oC0QegCdhqwo2sEf+nt/jF/DRPgjA== X-Received: by 2002:ac8:7dcc:0:b0:479:1a10:8958 with SMTP id d75a77b69052e-4797750fb92mr128705241cf.1.1744529571657; Sun, 13 Apr 2025 00:32:51 -0700 (PDT) Received: from UbuntuDev.. (syn-074-067-077-020.res.spectrum.com. [74.67.77.20]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4796eb0b58csm52142401cf.2.2025.04.13.00.32.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Apr 2025 00:32:51 -0700 (PDT) From: Ganesh Kumar Pittala To: johan@kernel.org, elder@kernel.org, gregkh@linuxfoundation.org Cc: greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, hvaibhav.linux@gmail.com, vaibhav.sr@gmail.com, mgreer@animalcreek.com, rmfrfs@gmail.com, pure.logic@nexus-software.ie, ganeshkpittala@gmail.com Subject: [PATCH v2 3/4] staging: greybus: refactor gb_loopback_fn into smaller helper functions Date: Sun, 13 Apr 2025 07:32:19 +0000 Message-ID: <20250413073220.15931-4-ganeshkpittala@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250413073220.15931-1-ganeshkpittala@gmail.com> References: <20250413073220.15931-1-ganeshkpittala@gmail.com> 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" This patch refactors the gb_loopback_fn() function in loopback.c by splitting large blocks of logic into well-named static helpers to improve clarity, readability, and maintainability. The control flow remains unchanged. No functional modifications are introduced. This aligns with kernel coding style guidelines for long functions and helps future contributors understand and modify loopback behavior more easily. Signed-off-by: Ganesh Kumar Pittala --- drivers/staging/greybus/loopback.c | 152 ++++++++++++++++------------- 1 file changed, 82 insertions(+), 70 deletions(-) diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/l= oopback.c index c194afea941a..1e3644ede1b6 100644 --- a/drivers/staging/greybus/loopback.c +++ b/drivers/staging/greybus/loopback.c @@ -832,105 +832,117 @@ static void gb_loopback_async_wait_to_send(struct g= b_loopback *gb) kthread_should_stop()); } =20 -static int gb_loopback_fn(void *data) +static bool gb_loopback_should_stop(struct gb_loopback *gb, + struct gb_bundle *bundle) +{ + if (!gb->type) { + gb_pm_runtime_put_autosuspend(bundle); + wait_event_interruptible(gb->wq, + gb->type || kthread_should_stop()); + if (kthread_should_stop()) + return true; + gb_pm_runtime_get_sync(bundle); + } + return kthread_should_stop(); +} + +static void gb_loopback_handle_completion(struct gb_loopback *gb, + struct gb_bundle *bundle) +{ + gb_loopback_async_wait_all(gb); + + mutex_lock(&gb->mutex); + if (gb->iteration_count =3D=3D gb->iteration_max) { + gb->type =3D 0; + gb->send_count =3D 0; + sysfs_notify(&gb->dev->kobj, NULL, "iteration_count"); + dev_dbg(&bundle->dev, "load test complete\n"); + } else { + dev_dbg(&bundle->dev, "continuing on with new test set\n"); + } + mutex_unlock(&gb->mutex); +} + +static void gb_loopback_dispatch_operation(struct gb_loopback *gb, int typ= e, + u32 size) { int error =3D 0; - int us_wait =3D 0; - int type; - int ret; - u32 size; =20 + if (gb->async) { + if (type =3D=3D GB_LOOPBACK_TYPE_PING) + error =3D gb_loopback_async_ping(gb); + else if (type =3D=3D GB_LOOPBACK_TYPE_TRANSFER) + error =3D gb_loopback_async_transfer(gb, size); + else if (type =3D=3D GB_LOOPBACK_TYPE_SINK) + error =3D gb_loopback_async_sink(gb, size); + + if (error) { + gb->error++; + gb->iteration_count++; + } + } else { + if (type =3D=3D GB_LOOPBACK_TYPE_PING) + error =3D gb_loopback_sync_ping(gb); + else if (type =3D=3D GB_LOOPBACK_TYPE_TRANSFER) + error =3D gb_loopback_sync_transfer(gb, size); + else if (type =3D=3D GB_LOOPBACK_TYPE_SINK) + error =3D gb_loopback_sync_sink(gb, size); + + if (error) + gb->error++; + gb->iteration_count++; + gb_loopback_calculate_stats(gb, !!error); + } +} + +static void gb_loopback_delay_if_needed(int us_wait) +{ + if (us_wait) { + if (us_wait < 20000) + usleep_range(us_wait, us_wait + 100); + else + msleep(us_wait / 1000); + } +} + +static int gb_loopback_fn(void *data) +{ + int us_wait =3D 0, type; + u32 size; struct gb_loopback *gb =3D data; struct gb_bundle *bundle =3D gb->connection->bundle; =20 - ret =3D gb_pm_runtime_get_sync(bundle); - if (ret) - return ret; + if (gb_pm_runtime_get_sync(bundle)) + return -EIO; =20 while (1) { - if (!gb->type) { - gb_pm_runtime_put_autosuspend(bundle); - wait_event_interruptible(gb->wq, gb->type || - kthread_should_stop()); - ret =3D gb_pm_runtime_get_sync(bundle); - if (ret) - return ret; - } - - if (kthread_should_stop()) + if (gb_loopback_should_stop(gb, bundle)) break; =20 - /* Limit the maximum number of in-flight async operations */ gb_loopback_async_wait_to_send(gb); if (kthread_should_stop()) break; =20 mutex_lock(&gb->mutex); =20 - /* Optionally terminate */ if (gb->send_count =3D=3D gb->iteration_max) { mutex_unlock(&gb->mutex); - - /* Wait for synchronous and asynchronous completion */ - gb_loopback_async_wait_all(gb); - - /* Mark complete unless user-space has poked us */ - mutex_lock(&gb->mutex); - if (gb->iteration_count =3D=3D gb->iteration_max) { - gb->type =3D 0; - gb->send_count =3D 0; - sysfs_notify(&gb->dev->kobj, NULL, - "iteration_count"); - dev_dbg(&bundle->dev, "load test complete\n"); - } else { - dev_dbg(&bundle->dev, - "continuing on with new test set\n"); - } - mutex_unlock(&gb->mutex); + gb_loopback_handle_completion(gb, bundle); continue; } + size =3D gb->size; us_wait =3D gb->us_wait; type =3D gb->type; if (ktime_to_ns(gb->ts) =3D=3D 0) gb->ts =3D ktime_get(); =20 - /* Else operations to perform */ - if (gb->async) { - if (type =3D=3D GB_LOOPBACK_TYPE_PING) - error =3D gb_loopback_async_ping(gb); - else if (type =3D=3D GB_LOOPBACK_TYPE_TRANSFER) - error =3D gb_loopback_async_transfer(gb, size); - else if (type =3D=3D GB_LOOPBACK_TYPE_SINK) - error =3D gb_loopback_async_sink(gb, size); - - if (error) { - gb->error++; - gb->iteration_count++; - } - } else { - /* We are effectively single threaded here */ - if (type =3D=3D GB_LOOPBACK_TYPE_PING) - error =3D gb_loopback_sync_ping(gb); - else if (type =3D=3D GB_LOOPBACK_TYPE_TRANSFER) - error =3D gb_loopback_sync_transfer(gb, size); - else if (type =3D=3D GB_LOOPBACK_TYPE_SINK) - error =3D gb_loopback_sync_sink(gb, size); - - if (error) - gb->error++; - gb->iteration_count++; - gb_loopback_calculate_stats(gb, !!error); - } + gb_loopback_dispatch_operation(gb, type, size); + gb->send_count++; mutex_unlock(&gb->mutex); =20 - if (us_wait) { - if (us_wait < 20000) - usleep_range(us_wait, us_wait + 100); - else - msleep(us_wait / 1000); - } + gb_loopback_delay_if_needed(us_wait); } =20 gb_pm_runtime_put_autosuspend(bundle); --=20 2.43.0 From nobody Fri Dec 19 11:06:34 2025 Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (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 DB74A18C930 for ; Sun, 13 Apr 2025 07:32:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529577; cv=none; b=kVpyQoomJ7gnAA7Z8c3bh1D+5nAQmMXG0zQHzbi/eQ9MI3quXlOEQ/PwtJH9Kd/+jS9WD+DQKA0xkRifUHWtVcWPJwPL0z/tQMy4q6cguggOs7+gJMB3wN4gGfkm1z0/7ueRju2pJ51Ht63Inl9meUzji36qk9qjud5g4odS8F4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744529577; c=relaxed/simple; bh=pUIA/RXhgilbz1ISOoGK6YAU8jlldGmdEkdoGdAehQI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P6mtLPhRdVuiWZ9nq7s+2Ar3py7KaiV34iBwFLcQSABiNUAWVfspJwVk+GEGacOTIxG1P2EcUXn4hmYLpKyMg+qyjp6qRgCilCTtQoaAfjX75N7mBT3TRHHGtH/qIqE79jMoWrDw8H3rHeacKk65RyNz3uGRYO+s2CQIEmXqAfA= 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=L5+TquSM; arc=none smtp.client-ip=209.85.222.193 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="L5+TquSM" Received: by mail-qk1-f193.google.com with SMTP id af79cd13be357-7c54f67db99so433389485a.1 for ; Sun, 13 Apr 2025 00:32:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744529575; x=1745134375; 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=cfqOPU3wDyCgu3vC/mniafYNGRL//NvF+7lZ1K70QeA=; b=L5+TquSME+YxMzVuvyyWhW4X0qmMNU0/1y7dmMu/xE7hGjKlklNbsS0P8xPngpC9nS WnHmA2JJnBC46cwzM6DygJmZEdPwBDEq9OjGEA157WK/uUfbUIHfv/OqBL1zi6av4VRE WHM0t6eGsAEk/yRf0zTMMjGZelklvH3ESSd0fdU2U2l7FUzad9ZQ673Rw+L8IX8vbkxd dSfDpD6Ww2n7anZzt/lz92ZKou0HJMahvVYzEGMo8gg4bd/zNe44cK0djskTgnQqWJ0h ELluqyQ6igzEQcwxHRnOYtB6ZihcZYSTCGphS309RM7NhvNavw1lqvtRW0AkQPJbgRn7 gKcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744529575; x=1745134375; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cfqOPU3wDyCgu3vC/mniafYNGRL//NvF+7lZ1K70QeA=; b=ies2bMAnoTzp+vgN+dhUgVvVdwsfu+ebVKBSQNSsg/KEszEtZIRgfXuY4uL38AHfbO HDBeP9sAAYXHxeuqLO5/wEM3rdUQErccLTg4hMpy/NVYN+ZgK4Qf//i7TQwE7cUJ1J4P 2T8nN/oR8pTB4TB1stEHGqOWGSD+8nDp9K5uSXbwcq+vO67I/oceXJ/MjTgpiXKRcvl8 h29+CuQE6Ky6+Fo8XfcW5osbiLsUts0sfnVQ+2zaXSslXOq8/P1l5RnkaPz05GI3j1N6 GQHO+qhPM2hsu3KNNHOYJ0vUJsm9PRan9r0VNB+dW0ZUt016NClnGD7gWWU4GYcS7CJu 2OXA== X-Forwarded-Encrypted: i=1; AJvYcCVWjAjPiCQV7y53ZL+gdg4FxdUlTS2wK8uP10vOkdLhEPYvClsG37eOELQkiQFyVjvbI5VwwMA9E4BldMA=@vger.kernel.org X-Gm-Message-State: AOJu0YzCs/dylVkpEjcIOxo7g35D2ZMM9ds8uDA9VvgiZZDud+ZpeMVg +S/3JaT0O6c57JTgLuSPmlRbX1cry7RU3Nfs8/H4L+EmsSpop93Z X-Gm-Gg: ASbGnctXAjtzcep1tkWMr8W3f1bcwzQ/Ievh5fQRpc+tB4LGZuWagBJnyhLnsr8p3FU E8rayfQ0f5yr7KcHbf0pHDmCzwrwWKEIBEn20ClOpBd0CZS2IRb5wy4tKy61kJmL2r3C3fjMGFn exh1tHNsdwGhEVQU/vTw8MALDVU5wcb8hLKjlEyel5b3fD7zXr1YHXMrtyqJlMRVHw/VgOd4zjB Y9qplyY0Co92dOF0d9HScJsQ1aJLVnJDYMwI2Hi0pBv5JHeXOWGOSVd75CPzinE3XpG+fYoR68o 3En507mH14MKrmWkPy1GQhaU6V1AIL3msvMi9x2BSdm0mk/FgdNM7qty0PGyGCuigzMsYsTExek gHVO0camDi6DEVH8Y0w== X-Google-Smtp-Source: AGHT+IHh7do8k/l7nY7jzUed4eBmOzqjrZqSgir0AaDpT5VzCL16gYZxnsXjqi/syQ2mjP7YJ3yIqQ== X-Received: by 2002:a05:620a:4515:b0:7c5:6b46:e1ee with SMTP id af79cd13be357-7c7a764cb6bmr1771180085a.4.1744529574458; Sun, 13 Apr 2025 00:32:54 -0700 (PDT) Received: from UbuntuDev.. (syn-074-067-077-020.res.spectrum.com. [74.67.77.20]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4796eb0b58csm52142401cf.2.2025.04.13.00.32.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Apr 2025 00:32:54 -0700 (PDT) From: Ganesh Kumar Pittala To: johan@kernel.org, elder@kernel.org, gregkh@linuxfoundation.org Cc: greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, hvaibhav.linux@gmail.com, vaibhav.sr@gmail.com, mgreer@animalcreek.com, rmfrfs@gmail.com, pure.logic@nexus-software.ie, ganeshkpittala@gmail.com Subject: [PATCH v2 4/4] staging: greybus: split gb_audio_gb_get_topology into helper functions Date: Sun, 13 Apr 2025 07:32:20 +0000 Message-ID: <20250413073220.15931-5-ganeshkpittala@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250413073220.15931-1-ganeshkpittala@gmail.com> References: <20250413073220.15931-1-ganeshkpittala@gmail.com> 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" This patch addresses the TODO in gb_audio_gb_get_topology() by splitting its logic into two smaller internal helper functions: - gb_audio_get_topology_size() - gb_audio_read_topology() This improves modularity and readability while preserving the original behavior and interface. Signed-off-by: Ganesh Kumar Pittala --- drivers/staging/greybus/audio_gb.c | 36 +++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/drivers/staging/greybus/audio_gb.c b/drivers/staging/greybus/a= udio_gb.c index 9d8994fdb41a..92cfd1a6fc10 100644 --- a/drivers/staging/greybus/audio_gb.c +++ b/drivers/staging/greybus/audio_gb.c @@ -8,21 +8,28 @@ #include #include "audio_codec.h" =20 -/* TODO: Split into separate calls */ -int gb_audio_gb_get_topology(struct gb_connection *connection, - struct gb_audio_topology **topology) +static int gb_audio_gb_get_topology_size(struct gb_connection *connection, + u16 *size) { - struct gb_audio_get_topology_size_response size_resp; - struct gb_audio_topology *topo; - u16 size; + struct gb_audio_get_topology_size_response resp; int ret; =20 ret =3D gb_operation_sync(connection, GB_AUDIO_TYPE_GET_TOPOLOGY_SIZE, - NULL, 0, &size_resp, sizeof(size_resp)); + NULL, 0, &resp, sizeof(resp)); if (ret) return ret; =20 - size =3D le16_to_cpu(size_resp.size); + *size =3D le16_to_cpu(resp.size); + return 0; +} + +static int gb_audio_gb_read_topology(struct gb_connection *connection, + struct gb_audio_topology **topology, + u16 size) +{ + struct gb_audio_topology *topo; + int ret; + if (size < sizeof(*topo)) return -ENODATA; =20 @@ -41,6 +48,19 @@ int gb_audio_gb_get_topology(struct gb_connection *conne= ction, =20 return 0; } + +int gb_audio_gb_get_topology(struct gb_connection *connection, + struct gb_audio_topology **topology) +{ + u16 size; + int ret; + + ret =3D gb_audio_gb_get_topology_size(connection, &size); + if (ret) + return ret; + + return gb_audio_gb_read_topology(connection, topology, size); +} EXPORT_SYMBOL_GPL(gb_audio_gb_get_topology); =20 int gb_audio_gb_get_control(struct gb_connection *connection, --=20 2.43.0