mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
PCI: endpoint: Clear BAR before freeing its space
Associated pci_epf_bar structure is needed in pci_epc_clear_bar() to clear a BAR correctly but it is reset in pci_epf_free_space() (that is called first) which results in pci_epc_clear_bar() failure. Reorder the pci_epc_clear_bar()/pci_epf_free_space() calls execution to fix the issue. Signed-off-by: Alan Mikhak <alan.mikhak@sifive.com> [lorenzo.pieralisi@arm.com: reworded the commit log] Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
This commit is contained in:
parent
3041a64361
commit
dbb7bbcc8a
1 changed files with 1 additions and 1 deletions
|
@ -381,8 +381,8 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
|
||||||
epf_bar = &epf->bar[bar];
|
epf_bar = &epf->bar[bar];
|
||||||
|
|
||||||
if (epf_test->reg[bar]) {
|
if (epf_test->reg[bar]) {
|
||||||
pci_epf_free_space(epf, epf_test->reg[bar], bar);
|
|
||||||
pci_epc_clear_bar(epc, epf->func_no, epf_bar);
|
pci_epc_clear_bar(epc, epf->func_no, epf_bar);
|
||||||
|
pci_epf_free_space(epf, epf_test->reg[bar], bar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue