mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 07:34:31 +00:00
ata: ahci: Loop over the actual number of ports, not the maximum
The loop in ahci_start_ports() is looping over the maximum number of SCSI devices in the system, which can be larger than the amount of ports a particular AHCI controller has. The extra looping isn't directly harmful because the link_port_map bitmap won't have the bit set for a nonexistent port, but it is wasteful. Replace the loop limit with the port count of the AHCI controller instead. Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
47cef9c805
commit
8bf207d242
1 changed files with 1 additions and 1 deletions
|
@ -980,7 +980,7 @@ static int ahci_start_ports(struct ahci_uc_priv *uc_priv)
|
|||
|
||||
linkmap = uc_priv->link_port_map;
|
||||
|
||||
for (i = 0; i < CONFIG_SYS_SCSI_MAX_SCSI_ID; i++) {
|
||||
for (i = 0; i < uc_priv->n_ports; i++) {
|
||||
if (((linkmap >> i) & 0x01)) {
|
||||
if (ahci_port_start(uc_priv, (u8) i)) {
|
||||
printf("Can not start port %d\n", i);
|
||||
|
|
Loading…
Reference in a new issue