2019-05-23 22:00:07

by Alan Mikhak

[permalink] [raw]
Subject: [PATCH v2] PCI: endpoint: Clear BAR before freeing its space

Associated pci_epf_bar structure is needed in pci_epc_clear_bar() but
would be cleared in pci_epf_free_space(), if called first, and BAR
would not get cleared.

Signed-off-by: Alan Mikhak <[email protected]>
---
drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index 27806987e93b..f81a219dde5b 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -381,8 +381,8 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
epf_bar = &epf->bar[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_epf_free_space(epf, epf_test->reg[bar], bar);
}
}
}
--
2.7.4


2019-05-23 23:53:01

by Alan Mikhak

[permalink] [raw]
Subject: Re: [PATCH v2] PCI: endpoint: Clear BAR before freeing its space

+Bjorn Helgaas, +Gustavo Pimentel, +Wen Yang, +Kangjie Lu


On Thu, May 23, 2019 at 2:57 PM Alan Mikhak <[email protected]> wrote:
>
> Associated pci_epf_bar structure is needed in pci_epc_clear_bar() but
> would be cleared in pci_epf_free_space(), if called first, and BAR
> would not get cleared.
>
> Signed-off-by: Alan Mikhak <[email protected]>
> ---
> drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
> index 27806987e93b..f81a219dde5b 100644
> --- a/drivers/pci/endpoint/functions/pci-epf-test.c
> +++ b/drivers/pci/endpoint/functions/pci-epf-test.c
> @@ -381,8 +381,8 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
> epf_bar = &epf->bar[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_epf_free_space(epf, epf_test->reg[bar], bar);
> }
> }
> }
> --
> 2.7.4
>

2019-05-24 08:53:59

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: Re: [PATCH v2] PCI: endpoint: Clear BAR before freeing its space



On 24/05/19 5:20 AM, Alan Mikhak wrote:
> +Bjorn Helgaas, +Gustavo Pimentel, +Wen Yang, +Kangjie Lu
>
>
> On Thu, May 23, 2019 at 2:57 PM Alan Mikhak <[email protected]> wrote:
>>
>> Associated pci_epf_bar structure is needed in pci_epc_clear_bar() but
>> would be cleared in pci_epf_free_space(), if called first, and BAR
>> would not get cleared.
>>
>> Signed-off-by: Alan Mikhak <[email protected]>

Acked-by: Kishon Vijay Abraham I <[email protected]>
>> ---
>> drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
>> index 27806987e93b..f81a219dde5b 100644
>> --- a/drivers/pci/endpoint/functions/pci-epf-test.c
>> +++ b/drivers/pci/endpoint/functions/pci-epf-test.c
>> @@ -381,8 +381,8 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
>> epf_bar = &epf->bar[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_epf_free_space(epf, epf_test->reg[bar], bar);
>> }
>> }
>> }
>> --
>> 2.7.4
>>

2019-06-11 10:10:03

by Lorenzo Pieralisi

[permalink] [raw]
Subject: Re: [PATCH v2] PCI: endpoint: Clear BAR before freeing its space

On Thu, May 23, 2019 at 02:57:27PM -0700, Alan Mikhak wrote:
> Associated pci_epf_bar structure is needed in pci_epc_clear_bar() but
> would be cleared in pci_epf_free_space(), if called first, and BAR
> would not get cleared.
>
> Signed-off-by: Alan Mikhak <[email protected]>
> ---
> drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to pci/endpoint for v5.3, thanks.

Lorenzo

> diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
> index 27806987e93b..f81a219dde5b 100644
> --- a/drivers/pci/endpoint/functions/pci-epf-test.c
> +++ b/drivers/pci/endpoint/functions/pci-epf-test.c
> @@ -381,8 +381,8 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
> epf_bar = &epf->bar[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_epf_free_space(epf, epf_test->reg[bar], bar);
> }
> }
> }
> --
> 2.7.4
>