Re: [PATCH v2 07/13] ata: libata-core: Remove support for decreasing the number of ports

Niklas Cassel
2024-06-26T19:31:00Z

On Wed, Jun 26, 2024 at 08:00:37PM +0200, Niklas Cassel wrote:
> @@ -5908,12 +5903,13 @@ int ata_host_register(struct ata_host *host, const struct scsi_host_template *sh
> return -EINVAL;
> }
>
> - /* Blow away unused ports. This happens when LLD can't
> - * determine the exact number of ports to allocate at
> - * allocation time.
> + /*
> + * For a driver using ata_host_register(), the ports are allocated by
> + * ata_host_alloc(), which also allocates the host->ports array.
> + * The number of array elements must match host->n_ports.
> */
> for (i = host->n_ports; host->ports[i]; i++)
> - kfree(host->ports[i]);
> + WARN_ON(host->ports[i]);

Nit:
Even though we replace the kfree() with a WARN_ON() here, the strictly
correct thing would have been for the earlier patch in this series:
"ata,scsi: libata-core: Add ata_port_free()" to have replaced the kfree()
with ata_port_free(), and then for this patch to replace the ata_port_free()
with a WARN_ON().

Kind regards,
Niklas