All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] ata,libsas: Assign the unique id used for printing earlier
@ 2024-06-26 18:00 Niklas Cassel
  2024-06-26 18:00 ` [PATCH v2 01/13] ata: libata-core: Fix null pointer dereference on error Niklas Cassel
                   ` (13 more replies)
  0 siblings, 14 replies; 53+ messages in thread
From: Niklas Cassel @ 2024-06-26 18:00 UTC (permalink / raw)
  To: Damien Le Moal, Niklas Cassel, John Garry, Jason Yan,
	James E.J. Bottomley, Martin K. Petersen, Tejun Heo, Jeff Garzik,
	Colin Ian King, Jens Axboe, Kai-Heng Feng
  Cc: linux-scsi, linux-ide

Hello all,

This patch series was orginally meant to simply assign a unique id used
for printing earlier (ap->print_id), but has since grown to also include
cleanups related to ata_port_alloc() (since ap->print_id is now assigned
in ata_port_alloc()).

Patch 1-3 fixes incorrect cleanups in the error paths.
Patch 4,12 removes a useless libata wrappers only used for libsas.
Patch 5 introduces a ata_port_free(), in order to avoid duplicated code.
Patch 6 removes a unused function declaration in include/linux/libata.h.
Patch 7 remove support for decreasing the number of ports, as it is never
        used by any libata driver (including libsas and ipr).
Patch 8 removes a superfluous assignment in ata_sas_port_alloc().
Patch 9 removes the unnecessary local_port_no struct member in ata_port.
Patch 10 performs the ata_port print_id assignment earlier, so that the
         ata_port_* print functions can be used even before the ata_host
	 has been registered.
Patch 11 changes the print_id assignment to use an ida_alloc(), such that
         we will reuse IDs that are no longer in use, rather than keep
	 increasing the print_id forever.
Patch 13 adds a debug print in case the port is marked as external, this
         code runs before the ata_host has been registered, so it depends
	 on patch 10.


Martin, how do you want us to coordinate libsas changes?

You don't seem to have any libsas changes staged for 6.11 so far,
and the libsas changes in this series are quite isolated (and small),
so perhaps we can simply queue them via the libata tree?

Kind regards,
Niklas


Changes since v1:
-Added patches that fixes incorrect cleanups in the error paths.
-Added patches to remove useless libata wrappers only used for libsas.
-Added patch that introduces ata_port_free().
-Added patch that removes a unused function declaration in libata.h.
-Added patch that removes local_port_no (Damien).
-Added patch that assigns the print_id using ida_alloc() (Damien).
-Picked up tags.

Link to v1:
https://lore.kernel.org/linux-ide/20240618153537.2687621-7-cassel@kernel.org/

Niklas Cassel (13):
  ata: libata-core: Fix null pointer dereference on error
  ata: libata-core: Fix double free on error
  ata: ahci: Clean up sysfs file on error
  ata,scsi: Remove useless wrappers ata_sas_tport_{add,delete}()
  ata,scsi: libata-core: Add ata_port_free()
  ata: libata: Remove unused function declaration for ata_scsi_detect()
  ata: libata-core: Remove support for decreasing the number of ports
  ata: libata-sata: Remove superfluous assignment in
    ata_sas_port_alloc()
  ata: libata-core: Remove local_port_no struct member
  ata: libata: Assign print_id at port allocation time
  ata: libata-core: Reuse available ata_port print_ids
  ata,scsi: Remove useless ata_sas_port_alloc() wrapper
  ata: ahci: Add debug print for external port

 drivers/ata/ahci.c                 | 21 +++++++---
 drivers/ata/libata-core.c          | 66 ++++++++++++++++--------------
 drivers/ata/libata-sata.c          | 49 ----------------------
 drivers/ata/libata-transport.c     |  5 ++-
 drivers/ata/libata-transport.h     |  3 --
 drivers/ata/libata.h               |  1 -
 drivers/scsi/libsas/sas_ata.c      | 14 +++++--
 drivers/scsi/libsas/sas_discover.c |  4 +-
 include/linux/libata.h             | 12 +++---
 9 files changed, 71 insertions(+), 104 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 53+ messages in thread
* Re: [PATCH v2 11/13] ata: libata-core: Reuse available ata_port print_ids
@ 2024-06-28 18:41 kernel test robot
  0 siblings, 0 replies; 53+ messages in thread
From: kernel test robot @ 2024-06-28 18:41 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Julia Lawall

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240626180031.4050226-26-cassel@kernel.org>
References: <20240626180031.4050226-26-cassel@kernel.org>
TO: Niklas Cassel <cassel@kernel.org>
TO: Damien Le Moal <dlemoal@kernel.org>
TO: Niklas Cassel <cassel@kernel.org>
CC: linux-scsi@vger.kernel.org
CC: John Garry <john.g.garry@oracle.com>
CC: Jason Yan <yanaijie@huawei.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
CC: linux-ide@vger.kernel.org

Hi Niklas,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.10-rc5 next-20240627]
[cannot apply to mkp-scsi/for-next jejb-scsi/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Niklas-Cassel/ata-libata-core-Fix-null-pointer-dereference-on-error/20240627-123023
base:   linus/master
patch link:    https://lore.kernel.org/r/20240626180031.4050226-26-cassel%40kernel.org
patch subject: [PATCH v2 11/13] ata: libata-core: Reuse available ata_port print_ids
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: x86_64-randconfig-101-20240628 (https://download.01.org/0day-ci/archive/20240629/202406290221.VULCV6Lt-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202406290221.VULCV6Lt-lkp@intel.com/

cocci warnings: (new ones prefixed by >>)
>> drivers/ata/libata-core.c:5467:5-17: WARNING: Unsigned expression compared with zero: ap -> print_id < 0

vim +5467 drivers/ata/libata-core.c

4fb37a25b976e8 drivers/ata/libata-core.c  Tejun Heo       2007-08-06  5443  
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5444  /**
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5445   *	ata_port_alloc - allocate and initialize basic ATA port resources
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5446   *	@host: ATA host this allocated port belongs to
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5447   *
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5448   *	Allocate and initialize basic ATA port resources.
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5449   *
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5450   *	RETURNS:
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5451   *	Allocate ATA port on success, NULL on failure.
0cba632b737fc2 drivers/scsi/libata-core.c Jeff Garzik     2005-05-30  5452   *
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5453   *	LOCKING:
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5454   *	Inherited from calling layer (may sleep).
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5455   */
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5456  struct ata_port *ata_port_alloc(struct ata_host *host)
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5457  {
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5458  	struct ata_port *ap;
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5459  
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5460  	ap = kzalloc(sizeof(*ap), GFP_KERNEL);
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5461  	if (!ap)
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5462  		return NULL;
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5463  
7b3a24c57d2eed drivers/ata/libata-core.c  Maxime Bizon    2011-03-16  5464  	ap->pflags |= ATA_PFLAG_INITIALIZING | ATA_PFLAG_FROZEN;
cca3974e48607c drivers/ata/libata-core.c  Jeff Garzik     2006-08-24  5465  	ap->lock = &host->lock;
94908a6170de20 drivers/ata/libata-core.c  Niklas Cassel   2024-06-26  5466  	ap->print_id = ida_alloc_min(&ata_ida, 1, GFP_KERNEL);
94908a6170de20 drivers/ata/libata-core.c  Niklas Cassel   2024-06-26 @5467  	if (ap->print_id < 0) {
94908a6170de20 drivers/ata/libata-core.c  Niklas Cassel   2024-06-26  5468  		kfree(ap);
94908a6170de20 drivers/ata/libata-core.c  Niklas Cassel   2024-06-26  5469  		return NULL;
94908a6170de20 drivers/ata/libata-core.c  Niklas Cassel   2024-06-26  5470  	}
cca3974e48607c drivers/ata/libata-core.c  Jeff Garzik     2006-08-24  5471  	ap->host = host;
f31871951b38da drivers/ata/libata-core.c  Tejun Heo       2007-04-17  5472  	ap->dev = host->dev;
bd5d825c9434b8 drivers/scsi/libata-core.c Borislav Petkov 2006-06-11  5473  
ad72cf9885c536 drivers/ata/libata-core.c  Tejun Heo       2010-07-02  5474  	mutex_init(&ap->scsi_scan_mutex);
65f27f38446e19 drivers/ata/libata-core.c  David Howells   2006-11-22  5475  	INIT_DELAYED_WORK(&ap->hotplug_task, ata_scsi_hotplug);
6aa0365a3c8512 drivers/ata/libata-core.c  Damien Le Moal  2023-06-15  5476  	INIT_DELAYED_WORK(&ap->scsi_rescan_task, ata_scsi_dev_rescan);
a72ec4ce6d3ae9 drivers/scsi/libata-core.c Tejun Heo       2006-01-23  5477  	INIT_LIST_HEAD(&ap->eh_done_q);
c6cf9e99d1de5c drivers/scsi/libata-core.c Tejun Heo       2006-05-31  5478  	init_waitqueue_head(&ap->eh_wait_q);
45fabbb77bd95a drivers/ata/libata-core.c  Elias Oltmanns  2008-09-21  5479  	init_completion(&ap->park_req_pending);
b93ab338f7f0e3 drivers/ata/libata-core.c  Kees Cook       2017-10-16  5480  	timer_setup(&ap->fastdrain_timer, ata_eh_fastdrain_timerfn,
b93ab338f7f0e3 drivers/ata/libata-core.c  Kees Cook       2017-10-16  5481  		    TIMER_DEFERRABLE);
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5482  
838df6284c5444 drivers/scsi/libata-core.c Tejun Heo       2006-05-15  5483  	ap->cbl = ATA_CBL_NONE;
838df6284c5444 drivers/scsi/libata-core.c Tejun Heo       2006-05-15  5484  
8989805d6d176a drivers/ata/libata-core.c  Tejun Heo       2007-08-06  5485  	ata_link_init(ap, &ap->link, 0);
^1da177e4c3f41 drivers/scsi/libata-core.c Linus Torvalds  2005-04-16  5486  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2024-07-02 15:43 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26 18:00 [PATCH v2 00/13] ata,libsas: Assign the unique id used for printing earlier Niklas Cassel
2024-06-26 18:00 ` [PATCH v2 01/13] ata: libata-core: Fix null pointer dereference on error Niklas Cassel
2024-06-27  1:00   ` Damien Le Moal
2024-06-27  6:24   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 02/13] ata: libata-core: Fix double free " Niklas Cassel
2024-06-27  1:02   ` Damien Le Moal
2024-06-27  6:25   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 03/13] ata: ahci: Clean up sysfs file " Niklas Cassel
2024-06-26 18:34   ` Niklas Cassel
2024-06-27  1:04   ` Damien Le Moal
2024-06-27  6:28   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 04/13] ata,scsi: Remove useless wrappers ata_sas_tport_{add,delete}() Niklas Cassel
2024-06-27  1:07   ` Damien Le Moal
2024-06-27  6:29   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 05/13] ata,scsi: libata-core: Add ata_port_free() Niklas Cassel
2024-06-27  1:15   ` Damien Le Moal
2024-06-29 12:09     ` Niklas Cassel
2024-06-27  6:30   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 06/13] ata: libata: Remove unused function declaration for ata_scsi_detect() Niklas Cassel
2024-06-27  1:16   ` Damien Le Moal
2024-06-27  6:31   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 07/13] ata: libata-core: Remove support for decreasing the number of ports Niklas Cassel
2024-06-26 19:30   ` Niklas Cassel
2024-06-27  1:30   ` Damien Le Moal
2024-06-27  6:35   ` Hannes Reinecke
2024-06-29 12:24     ` Niklas Cassel
2024-06-26 18:00 ` [PATCH v2 08/13] ata: libata-sata: Remove superfluous assignment in ata_sas_port_alloc() Niklas Cassel
2024-06-27  1:31   ` Damien Le Moal
2024-06-27  6:37   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 09/13] ata: libata-core: Remove local_port_no struct member Niklas Cassel
2024-06-27  1:33   ` Damien Le Moal
2024-06-27  6:37   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 10/13] ata: libata: Assign print_id at port allocation time Niklas Cassel
2024-06-27  6:38   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 11/13] ata: libata-core: Reuse available ata_port print_ids Niklas Cassel
2024-06-27  1:37   ` Damien Le Moal
2024-07-02 15:43     ` Niklas Cassel
2024-06-27  6:39   ` Hannes Reinecke
2024-06-28 16:31   ` kernel test robot
2024-06-28 18:15     ` Niklas Cassel
2024-06-26 18:00 ` [PATCH v2 12/13] ata,scsi: Remove useless ata_sas_port_alloc() wrapper Niklas Cassel
2024-06-27  1:46   ` Damien Le Moal
2024-06-27  9:48     ` Niklas Cassel
2024-06-28  3:46       ` Damien Le Moal
2024-06-27  6:40   ` Hannes Reinecke
2024-06-26 18:00 ` [PATCH v2 13/13] ata: ahci: Add debug print for external port Niklas Cassel
2024-06-27  6:40   ` Hannes Reinecke
2024-06-27 12:26 ` [PATCH v2 00/13] ata,libsas: Assign the unique id used for printing earlier John Garry
2024-06-27 12:32   ` Niklas Cassel
2024-06-27 12:54     ` John Garry
2024-06-27 15:07       ` Niklas Cassel
2024-07-02 15:43         ` Niklas Cassel
  -- strict thread matches above, loose matches on Subject: below --
2024-06-28 18:41 [PATCH v2 11/13] ata: libata-core: Reuse available ata_port print_ids kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.