Re: [PATCH] SR-IOV: correct broken resource alignment calculations

From: Greg KH
Date: Fri Aug 28 2009 - 15:45:45 EST

On Fri, Aug 28, 2009 at 12:17:14PM -0700, Chris Wright wrote:
> An SR-IOV capable device includes an SR-IOV PCIe capability which
> describes the Virtual Function (VF) BAR requirements. A typical SR-IOV
> device can support multiple VFs whose BARs must be in a contiguous region,
> effectively an array of VF BARs. The BAR reports the size requirement
> for a single VF. We calculate the full range needed by simply multiplying
> the VF BAR size with the number of possible VFs and create a resource
> spanning the full range.
> This all seems sane enough except it artificially inflates the alignment
> requirement for the VF BAR. The VF BAR need only be aligned to the size
> of a single BAR not the contiguous range of VF BARs. This can cause us
> to fail to allocate resources for the BAR despite the fact that we
> actually have enough space.
> This patch adds a support for a new resource alignment type,
> IORESOURCE_VSIZEALIGN, and allows struct resource to keep track of the
> size requirements of a VF BAR which are smaller than the full resource
> size. This could also be done all within the PCI layer w/out bloating
> struct resource or using the last available bit for alignment types.
> Comments?
> Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
> Cc: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
> Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Matthew Wilcox <matthew@xxxxxx>
> Cc: Yu Zhao <yu.zhao@xxxxxxxxx>
> Cc: stable@xxxxxxxxxx

This is a new feature, which seems to be odd to have it sent to stable

Does this fix reported problems in the "wild"?

Other than that minor procedural thing, the patch looks good to me.


greg k-h
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at