From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752341AbcFFP0s (ORCPT ); Mon, 6 Jun 2016 11:26:48 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:60040 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752086AbcFFP0q (ORCPT ); Mon, 6 Jun 2016 11:26:46 -0400 Date: Mon, 6 Jun 2016 08:26:45 -0700 From: "gregkh@linuxfoundation.org" To: "Koehrer Mathias (ETAS/ESW5)" Cc: "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bhelgaas@google.com" , "hjk@hansjkoch.de" Subject: Re: [PATCH] Introducing kernel option to force all PCI memory resources to be page aligned. Fixes issues with uio based drivers. Message-ID: <20160606152645.GA7605@kroah.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 06, 2016 at 02:59:47PM +0000, Koehrer Mathias (ETAS/ESW5) wrote: > Hi Greg, > > thanks for the response. > > > Some uio based PCI drivers (e.g. uio_cif) do not work if the assigned > > > PCI memory resources are not page aligned. > > > By using the kernel option "pci=resource_alignment" it is possible to > > > force single PCI boards to use page alignment for their memory resources. > > > However, this is fairly cumbersome if multiple of these cards are in use. > > > This patch adds another kernel option "pci=resources_page_aligned" > > > that allows to set the default alignment of PCI memory resources to be > > > page aligned. > > > Overwriting of this default alignment via "pci=resource_alignment" is > > > still possible. > > > > This seems like a very large hammer for a very specific problem with a card > > that seems to be not-in-spec (I can't find anywhere that requires resources to > > be "page" aligned in the PCI spec). Why not fix the firmware in these cards? > The issue is not the firmware. The issue is that the Linux uio driver (here: uio_cif) > does not work as uio_mmap() -> uio_mmap_physical() does not do a mmap > on physical memory that is not page aligned... Then why not fix the uio_cif driver? greg k-h