aboutsummaryrefslogtreecommitdiffstats
path: root/src/hw/megasas.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-04-05 13:04:07 -0400
committerKevin O'Connor <kevin@koconnor.net>2016-04-06 09:53:55 -0400
commit79bafa1f4037f371b2f03c54647565c9537cc0c2 (patch)
tree3cd56cbb049289e156a2a596c4b144e22745b909 /src/hw/megasas.c
parentb35ea54a7586bbfb004ebf4c928d9b18b8a974fa (diff)
downloadseabios-79bafa1f4037f371b2f03c54647565c9537cc0c2.tar.gz
scsi: Launch a thread when scanning for drives in the scsi drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/hw/megasas.c')
-rw-r--r--src/hw/megasas.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/hw/megasas.c b/src/hw/megasas.c
index 7514164b..efd0f6ef 100644
--- a/src/hw/megasas.c
+++ b/src/hw/megasas.c
@@ -357,8 +357,9 @@ static int megasas_transition_to_ready(struct pci_device *pci, u32 ioaddr)
}
static void
-init_megasas(struct pci_device *pci)
+init_megasas(void *data)
{
+ struct pci_device *pci = data;
u32 bar = PCI_BASE_ADDRESS_2;
if (!(pci_config_readl(pci->bdf, bar) & PCI_BASE_ADDRESS_IO_MASK))
bar = PCI_BASE_ADDRESS_0;
@@ -372,8 +373,6 @@ init_megasas(struct pci_device *pci)
// reset
if (megasas_transition_to_ready(pci, iobase) == 0)
megasas_scan_target(pci, iobase);
-
- return;
}
void
@@ -401,6 +400,6 @@ megasas_setup(void)
pci->device == PCI_DEVICE_ID_DELL_PERC5 ||
pci->device == PCI_DEVICE_ID_LSI_SAS2208 ||
pci->device == PCI_DEVICE_ID_LSI_SAS3108)
- init_megasas(pci);
+ run_thread(init_megasas, pci);
}
}