lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <535E370A.2030207@mev.co.uk>
Date:	Mon, 28 Apr 2014 12:10:02 +0100
From:	Ian Abbott <abbotti@....co.uk>
To:	Chase Southwood <chase.southwood@...il.com>,
	<gregkh@...uxfoundation.org>
CC:	<hsweeten@...ionengravers.com>, <devel@...verdev.osuosl.org>,
	<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 4/6] staging: comedi: addi_apci_1564: simplify the PCI
 bar reading and don't read the unused bars

On 2014-04-28 11:19, Ian Abbott wrote:
> On 2014-04-27 02:37, Chase Southwood wrote:
>> This driver only uses PCI bar 1 (devpriv->i_IobaseAmcc), and PCI bar 2
>> (dev->iobase) doon't bother reading the unused PCI bars.
>>
>> Signed-off-by: Chase Southwood <chase.southwood@...il.com>
>> Cc: Ian Abbott <abbotti@....co.uk>
>> Cc: H Hartley Sweeten <hsweeten@...ionengravers.com>
>> ---
>>
>> Hartley,
>>
>> As far as I can tell from reading the I/O Mapping you sent me, these bar
>> numbers are correct, but it seems a bit odd, so please offer correction
>> if I am interpreting the document incorrectly.
>>
>> Thanks,
>> Chase
>>
>>   drivers/staging/comedi/drivers/addi_apci_1564.c | 11 ++---------
>>   1 file changed, 2 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/staging/comedi/drivers/addi_apci_1564.c
>> b/drivers/staging/comedi/drivers/addi_apci_1564.c
>> index fe42f9d..7e42d47 100644
>> --- a/drivers/staging/comedi/drivers/addi_apci_1564.c
>> +++ b/drivers/staging/comedi/drivers/addi_apci_1564.c
>> @@ -65,15 +65,8 @@ static int apci1564_auto_attach(struct
>> comedi_device *dev,
>>       if (ret)
>>           return ret;
>>
>> -    if (this_board->i_IorangeBase1)
>> -        dev->iobase = pci_resource_start(pcidev, 1);
>> -    else
>> -        dev->iobase = pci_resource_start(pcidev, 0);
>> -
>> -    devpriv->iobase = dev->iobase;
>> -    devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 0);
>> -    devpriv->i_IobaseAddon = pci_resource_start(pcidev, 2);
>> -    devpriv->i_IobaseReserved = pci_resource_start(pcidev, 3);
>> +    dev->iobase = pci_resource_start(pcidev, 2);
>> +    devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 1);
>
> I'm sure the original resources are correct, so since
> this_board->i_IorangeBase1 is non-zero:
>
>      dev->iobase = pci_resource_start(pcidev, 1);
>      devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 0);

Maybe this depends on the revision of the board, though.  The documents 
Chase saw were for APCI1564 revision D, but the PCI BAR assignments 
might have been different for earlier revisions of the board.

All the driver code I've ever seen for this board (including one of 
ADDI-DATA's own Linux drivers, which no longer seems to be available for 
download) has used PCI BARs 0 and 1 with the same functions as the 
comedi driver.

Most "off-the-shelf" PCI interface chips reserve at least PCI BAR 0 for 
their own registers.  The clearest image I've found of this board seems 
to have an Altera ACEX FPGA with built-in PCI interface, so it might not 
have that restriction on BAR 0.

http://pcqt.com/DAQ/images/apci-1564-400.jpg

I think it's best to stick with the existing BAR assignments until 
proved otherwise.

>
> I suspect the member name 'i_IobaseAmcc' is just a hangover from the
> distant past and could just be changed to 'iobasemain' or something,
> since most of the code seems to use it.
>


-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@....co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ