From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752144AbcFFNwE (ORCPT ); Mon, 6 Jun 2016 09:52:04 -0400 Received: from prv-mh.provo.novell.com ([137.65.248.74]:37710 "EHLO prv-mh.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751935AbcFFNwC convert rfc822-to-8bit (ORCPT ); Mon, 6 Jun 2016 09:52:02 -0400 Message-Id: <57559C1D02000078000F20DF@prv-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 14.2.0 Date: Mon, 06 Jun 2016 07:51:57 -0600 From: "Jan Beulich" To: "Boris Ostrovsky" Cc: "David Vrabel" , "xen-devel" , "Konrad Rzeszutek Wilk" , "Juergen Gross" , Subject: Re: [PATCH 1/2] xen-pciback: return proper values during BAR sizing References: <57554B8D02000078000F1DE4@prv-mh.provo.novell.com> <57554C5D02000078000F1DF1@prv-mh.provo.novell.com> <5755748D.6050900@oracle.com> In-Reply-To: <5755748D.6050900@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>> On 06.06.16 at 15:03, 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. Jan