From nobody Fri Jan 2 03:09:54 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42F5ACDB474 for ; Mon, 16 Oct 2023 13:32:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233610AbjJPNcL (ORCPT ); Mon, 16 Oct 2023 09:32:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233745AbjJPNbt (ORCPT ); Mon, 16 Oct 2023 09:31:49 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CA2EB18E for ; Mon, 16 Oct 2023 06:31:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697463104; x=1728999104; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gOFuCBEF7qDzKsVu/1gVwELNt4UpUHZQWLqV2968srU=; b=NctZuDJnGmkN7u+/MJgobLEHquP1IMcmNHPZzfj46GmkciWecKSPmHdQ rwNrFDYLP1EjkcUE3bZmlXUwF+00B0wSEIBNccf1p5yr0DM0I2+3GHA4c F/YxtFxLERbl6nBbKKeQ6UL54t1eW7I0YzRtUUjqNScDnkgQVwUxHGobh d0DSIBIg1UQS4iOvJ9NxSdz/1qcmzTda9cOFMmXUn0yQ0QACLuKK3x15E vS7f4Ci37PacAvT3FZ4dre+9o+om2BfwxbmdN3uI94niu48pDFsU2Kzh9 XpomAifLf190rglLpW2zYrVZjgKwu42zrldmQKxqauR6WCFXXpX33ZcKz Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="375892105" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="375892105" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2023 06:31:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="1002934887" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="1002934887" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 16 Oct 2023 06:31:38 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 409A7BF; Mon, 16 Oct 2023 16:31:37 +0300 (EEST) From: Andy Shevchenko To: Luis Chamberlain , Joel Granados , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Sudip Mukherjee , Greg Kroah-Hartman Subject: [resend, PATCH v1 1/3] parport: Use kasprintf() instead of fixed buffer formatting Date: Mon, 16 Oct 2023 16:31:33 +0300 Message-Id: <20231016133135.1203643-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> References: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Improve readability and maintainability by replacing a hardcoded string allocation and formatting by the use of the kasprintf() helper. Signed-off-by: Andy Shevchenko Reviewed-by: Luis Chamberlain --- drivers/parport/procfs.c | 53 +++++++--------------------------------- drivers/parport/share.c | 15 +++++------- include/linux/parport.h | 2 -- 3 files changed, 15 insertions(+), 55 deletions(-) diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c index 532d5cbbd344..bd388560ed59 100644 --- a/drivers/parport/procfs.c +++ b/drivers/parport/procfs.c @@ -32,13 +32,6 @@ #define PARPORT_MAX_TIMESLICE_VALUE ((unsigned long) HZ) #define PARPORT_MIN_SPINTIME_VALUE 1 #define PARPORT_MAX_SPINTIME_VALUE 1000 -/* - * PARPORT_BASE_* is the size of the known parts of the sysctl path - * in dev/partport/%s/devices/%s. "dev/parport/"(12), "/devices/"(9 - * and null char(1). - */ -#define PARPORT_BASE_PATH_SIZE 13 -#define PARPORT_BASE_DEVICES_PATH_SIZE 22 =20 static int do_active_device(struct ctl_table *table, int write, void *result, size_t *lenp, loff_t *ppos) @@ -423,8 +416,7 @@ int parport_proc_register(struct parport *port) { struct parport_sysctl_table *t; char *tmp_dir_path; - size_t tmp_path_len, port_name_len; - int bytes_written, i, err =3D 0; + int i, err =3D 0; =20 t =3D kmemdup(&parport_sysctl_template, sizeof(*t), GFP_KERNEL); if (t =3D=3D NULL) @@ -440,35 +432,23 @@ int parport_proc_register(struct parport *port) #endif /* IEEE 1284 support */ } =20 - port_name_len =3D strnlen(port->name, PARPORT_NAME_MAX_LEN); - /* - * Allocate a buffer for two paths: dev/parport/PORT and dev/parport/PORT= /devices. - * We calculate for the second as that will give us enough for the first. - */ - tmp_path_len =3D PARPORT_BASE_DEVICES_PATH_SIZE + port_name_len; - tmp_dir_path =3D kzalloc(tmp_path_len, GFP_KERNEL); + tmp_dir_path =3D kasprintf(GFP_KERNEL, "dev/parport/%s/devices", port->na= me); if (!tmp_dir_path) { err =3D -ENOMEM; goto exit_free_t; } =20 - bytes_written =3D snprintf(tmp_dir_path, tmp_path_len, - "dev/parport/%s/devices", port->name); - if (tmp_path_len <=3D bytes_written) { - err =3D -ENOENT; - goto exit_free_tmp_dir_path; - } t->devices_header =3D register_sysctl(tmp_dir_path, t->device_dir); if (t->devices_header =3D=3D NULL) { err =3D -ENOENT; goto exit_free_tmp_dir_path; } =20 - tmp_path_len =3D PARPORT_BASE_PATH_SIZE + port_name_len; - bytes_written =3D snprintf(tmp_dir_path, tmp_path_len, - "dev/parport/%s", port->name); - if (tmp_path_len <=3D bytes_written) { - err =3D -ENOENT; + kfree(tmp_dir_path); + + tmp_dir_path =3D kasprintf(GFP_KERNEL, "dev/parport/%s", port->name); + if (!tmp_dir_path) { + err =3D -ENOMEM; goto unregister_devices_h; } =20 @@ -508,34 +488,22 @@ int parport_proc_unregister(struct parport *port) =20 int parport_device_proc_register(struct pardevice *device) { - int bytes_written, err =3D 0; struct parport_device_sysctl_table *t; struct parport * port =3D device->port; - size_t port_name_len, device_name_len, tmp_dir_path_len; char *tmp_dir_path; + int err =3D 0; =09 t =3D kmemdup(&parport_device_sysctl_template, sizeof(*t), GFP_KERNEL); if (t =3D=3D NULL) return -ENOMEM; =20 - port_name_len =3D strnlen(port->name, PARPORT_NAME_MAX_LEN); - device_name_len =3D strnlen(device->name, PATH_MAX); - /* Allocate a buffer for two paths: dev/parport/PORT/devices/DEVICE. */ - tmp_dir_path_len =3D PARPORT_BASE_DEVICES_PATH_SIZE + port_name_len + dev= ice_name_len; - tmp_dir_path =3D kzalloc(tmp_dir_path_len, GFP_KERNEL); + tmp_dir_path =3D kasprintf(GFP_KERNEL, "dev/parport/%s/devices/%s", port-= >name, device->name); if (!tmp_dir_path) { err =3D -ENOMEM; goto exit_free_t; } =20 - bytes_written =3D snprintf(tmp_dir_path, tmp_dir_path_len, "dev/parport/%= s/devices/%s", - port->name, device->name); - if (tmp_dir_path_len <=3D bytes_written) { - err =3D -ENOENT; - goto exit_free_path; - } - t->vars[0].data =3D &device->timeslice; =20 t->sysctl_header =3D register_sysctl(tmp_dir_path, t->vars); @@ -548,9 +516,6 @@ int parport_device_proc_register(struct pardevice *devi= ce) kfree(tmp_dir_path); return 0; =20 -exit_free_path: - kfree(tmp_dir_path); - exit_free_t: kfree(t); =20 diff --git a/drivers/parport/share.c b/drivers/parport/share.c index 2d46b1d4fd69..8037bcd07bcf 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -438,7 +438,6 @@ struct parport *parport_register_port(unsigned long bas= e, int irq, int dma, struct parport *tmp; int num; int device; - char *name; int ret; =20 tmp =3D kzalloc(sizeof(struct parport), GFP_KERNEL); @@ -467,11 +466,6 @@ struct parport *parport_register_port(unsigned long ba= se, int irq, int dma, atomic_set(&tmp->ref_count, 1); INIT_LIST_HEAD(&tmp->full_list); =20 - name =3D kmalloc(PARPORT_NAME_MAX_LEN, GFP_KERNEL); - if (!name) { - kfree(tmp); - return NULL; - } /* Search for the lowest free parport number. */ =20 spin_lock(&full_list_lock); @@ -487,11 +481,14 @@ struct parport *parport_register_port(unsigned long b= ase, int irq, int dma, /* * Now that the portnum is known finish doing the Init. */ - sprintf(name, "parport%d", tmp->portnum =3D tmp->number); - tmp->name =3D name; + tmp->name =3D kasprintf(GFP_KERNEL, "parport%d", tmp->portnum); + if (!tmp->name) { + kfree(tmp); + return NULL; + } + dev_set_name(&tmp->bus_dev, tmp->name); tmp->bus_dev.bus =3D &parport_bus_type; tmp->bus_dev.release =3D free_port; - dev_set_name(&tmp->bus_dev, name); tmp->bus_dev.type =3D &parport_device_type; =20 for (device =3D 0; device < 5; device++) diff --git a/include/linux/parport.h b/include/linux/parport.h index 999eddd619b7..fff39bc30629 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h @@ -180,8 +180,6 @@ struct ieee1284_info { struct semaphore irq; }; =20 -#define PARPORT_NAME_MAX_LEN 15 - /* A parallel port */ struct parport { unsigned long base; /* base address */ --=20 2.40.0.1.gaa8946217a0b From nobody Fri Jan 2 03:09:54 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AB16CDB465 for ; Mon, 16 Oct 2023 13:31:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233696AbjJPNb5 (ORCPT ); Mon, 16 Oct 2023 09:31:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233732AbjJPNbn (ORCPT ); Mon, 16 Oct 2023 09:31:43 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0D165130 for ; Mon, 16 Oct 2023 06:31:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697463101; x=1728999101; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4roMkrTkBxn5M4KrWiiG+UKPCzazaRQ4mwiu9FhhIQM=; b=c4Obzebx+22ek0tTzWqTdZ6SDlbcc4z010e8tysMxRi3YLNXIXXGRqv4 gJL0bQAGdxB+RqzG78A0fM9M/NMz+YLscXvf2gjHXhoh2UZWk86bx/i9A Mdp/zEZqGey2396OtzKkbrmlH6a+wmTMbu1y+jk7sVSW7CEMzik6SxJ/x QtDzaTTet6Iwnfo1ac0J8YXwz+x4Z6nAIVNWr0fLPbevlja2ioLeN1ifN 4j4Pxg9L7rLQn/DUhb1tsrGz4inu+qGz6xvLeu+2TvhDFiUzbkcQR1n5n SZulLF1eRGyL2EvN2cHu95BpinXrB7nQ0+bzkYfV5okYQy/+lzjvpqX+O w==; X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="375892089" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="375892089" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2023 06:31:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="1002934884" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="1002934884" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 16 Oct 2023 06:31:38 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 566CE81C; Mon, 16 Oct 2023 16:31:37 +0300 (EEST) From: Andy Shevchenko To: Luis Chamberlain , Joel Granados , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Sudip Mukherjee , Greg Kroah-Hartman Subject: [resend, PATCH v1 2/3] parport: Use list_for_each() helper Date: Mon, 16 Oct 2023 16:31:34 +0300 Message-Id: <20231016133135.1203643-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> References: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Convert hard to read custom code to list_for_each(). No functional changes intended. Note, we may not use list_for_each_entry() as at the end of the list the iterator will point to an invalid entry and may not be dereferenced. Signed-off-by: Andy Shevchenko Reviewed-by: Luis Chamberlain --- drivers/parport/share.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/parport/share.c b/drivers/parport/share.c index 8037bcd07bcf..38780f6a9119 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -469,9 +469,11 @@ struct parport *parport_register_port(unsigned long ba= se, int irq, int dma, /* Search for the lowest free parport number. */ =20 spin_lock(&full_list_lock); - for (l =3D all_ports.next, num =3D 0; l !=3D &all_ports; l =3D l->next, n= um++) { + num =3D 0; + list_for_each(l, &all_ports) { struct parport *p =3D list_entry(l, struct parport, full_list); - if (p->number !=3D num) + + if (p->number !=3D num++) break; } tmp->portnum =3D tmp->number =3D num; --=20 2.40.0.1.gaa8946217a0b From nobody Fri Jan 2 03:09:54 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BA9ECDB465 for ; Mon, 16 Oct 2023 13:32:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233716AbjJPNcB (ORCPT ); Mon, 16 Oct 2023 09:32:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233685AbjJPNbt (ORCPT ); Mon, 16 Oct 2023 09:31:49 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B2617181 for ; Mon, 16 Oct 2023 06:31:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697463102; x=1728999102; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cdkuTO8u3rbVQRk8x8e3eLaDQYXu7b3sptU0SE6tXHc=; b=FICsEJgp9MRABfRfCapKVMFU7ahAwT4XPR+8WonqNzRaGtfDVZkzgsmc I6uLsKJ6xn88RIfYqLP/e6HR0lUaoGqGkaKcPq8zARkn6p1ptI6Cjt0N9 Dgstcq2YqHcp5AB6OfIaYR0U0IMoymIxEot7TejeqUnQWXcUWVHC6/LCn WEVvsWJcmKKSofYPpEVdyF3UNqPLulHeRmGI6vpM2p7V7djBpBeKtCkdZ zzbCKAysFDhhvuVeayUQ+pYdT2uzZbozuXj0SaH2pRdyZ7u0dwbths89u ++CAEWP4vZfa1MHDYUDEDJTKhkJUUYMhbexoYEy9lndiwubfS0+BdGJpJ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="375892095" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="375892095" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2023 06:31:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="1002934885" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="1002934885" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 16 Oct 2023 06:31:38 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 5BF63385; Mon, 16 Oct 2023 16:31:37 +0300 (EEST) From: Andy Shevchenko To: Luis Chamberlain , Joel Granados , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Sudip Mukherjee , Greg Kroah-Hartman Subject: [resend, PATCH v1 3/3] parport: Drop unneeded NULL or 0 assignments Date: Mon, 16 Oct 2023 16:31:35 +0300 Message-Id: <20231016133135.1203643-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> References: <20231016133135.1203643-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" kzalloc() gives us a zeroed memory, no need to explicitly assing 0 or NULL or similar to the members of the data structure that has been allocated with the above mentioned API. Signed-off-by: Andy Shevchenko Reviewed-by: Luis Chamberlain --- drivers/parport/share.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/parport/share.c b/drivers/parport/share.c index 38780f6a9119..a9a9cb0477ea 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -449,13 +449,9 @@ struct parport *parport_register_port(unsigned long ba= se, int irq, int dma, tmp->irq =3D irq; tmp->dma =3D dma; tmp->muxport =3D tmp->daisy =3D tmp->muxsel =3D -1; - tmp->modes =3D 0; INIT_LIST_HEAD(&tmp->list); - tmp->devices =3D tmp->cad =3D NULL; - tmp->flags =3D 0; tmp->ops =3D ops; tmp->physport =3D tmp; - memset(tmp->probe_info, 0, 5 * sizeof(struct parport_device_info)); rwlock_init(&tmp->cad_lock); spin_lock_init(&tmp->waitlist_lock); spin_lock_init(&tmp->pardevice_lock); --=20 2.40.0.1.gaa8946217a0b