[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 6 Jun 2016 10:28:54 -0400
From: Boris Ostrovsky <boris.ostrovsky@...cle.com>
To: Jan Beulich <JBeulich@...e.com>
Cc: David Vrabel <david.vrabel@...rix.com>,
xen-devel <xen-devel@...ts.xenproject.org>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Juergen Gross <JGross@...e.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] xen-pciback: return proper values during BAR sizing
On 06/06/2016 09:51 AM, Jan Beulich wrote:
>>>> On 06.06.16 at 15:03, <boris.ostrovsky@...cle.com> wrote:
>> On 06/06/2016 04:11 AM, Jan Beulich wrote:
>>> @@ -225,38 +225,42 @@ static inline void read_dev_bar(struct p
>>> (PCI_BASE_ADDRESS_SPACE_MEMORY |
>>> PCI_BASE_ADDRESS_MEM_TYPE_64))) {
>>> bar_info->val = res[pos - 1].start >> 32;
>>> - bar_info->len_val = res[pos - 1].end >> 32;
>>> + bar_info->len_val = -resource_size(&res[pos - 1]) >> 32;
>>> return;
>>> }
>>> }
>>>
>>> + if (!res[pos].flags ||
>>> + (res[pos].flags & (IORESOURCE_DISABLED | IORESOURCE_UNSET |
>>> + IORESOURCE_BUSY)))
>>> + return;
>> Why are you not making this check first thing in the routine?
> For one, pos isn't set there yet. And I'd also rather avoid the
> complications resulting from 64-bit memory resources spanning
> two entries.
I thought that both words of a 64-bit BAR would result in a return under
this check so both would be zero. But yes, pos needs to be initialized
anyway (I didn't see this in the diff).
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@...cle.com>
Powered by blists - more mailing lists