All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valentine Barshak <vbarshak@ru.mvista.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, Auke Kok <auke-jan.h.kok@intel.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH] pci: Fix e100 interrupt quirk
Date: Thu, 20 Sep 2007 15:33:22 +0400	[thread overview]
Message-ID: <46F25A82.8090300@ru.mvista.com> (raw)
In-Reply-To: <20070919233726.9d81b674.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Tue, 18 Sep 2007 15:17:37 +0400 Valentine Barshak <vbarshak@ru.mvista.com> wrote:
> 
>> PCI memory space may have a 64-bit offset on some architectures
>> (for example, PowerPC 440) and the actual PCI memory address
>> has to fixed up (an offset to PCI mem space shuld be added)
>> before remapping. So, pci_iomap should be used instead of
>> reading and remapping PCI BAR directly. This has been tested
>> on Sequoia PowerPC 440EPx board.
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>>
>> --- linux-2.6.orig/drivers/pci/quirks.c	2007-09-04 21:15:43.000000000 +0400
>> +++ linux-2.6.bld/drivers/pci/quirks.c	2007-09-05 20:46:14.000000000 +0400
>> @@ -1444,9 +1444,9 @@
>>  static void __devinit quirk_e100_interrupt(struct pci_dev *dev)
>>  {
>>  	u16 command;
>> -	u32 bar;
>>  	u8 __iomem *csr;
>>  	u8 cmd_hi;
>> +	int rc;
>>  
>>  	switch (dev->device) {
>>  	/* PCI IDs taken from drivers/net/e100.c */
>> @@ -1476,16 +1476,17 @@
>>  	 * re-enable them when it's ready.
>>  	 */
>>  	pci_read_config_word(dev, PCI_COMMAND, &command);
>> -	pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &bar);
>>  
>> -	if (!(command & PCI_COMMAND_MEMORY) || !bar)
>> +	rc = pci_request_region(dev, 0, "e100_quirk");
>> +
>> +	if (!(command & PCI_COMMAND_MEMORY) || (rc < 0))
>>  		return;
> 
> Really?  So if pci_request_region() failed and !(command & PCI_COMMAND_MEMORY),
> we leak the region?  So the next call to this function will fail?
> 

I've split command and request region checks and submitted new patch:
http://lkml.org/lkml/2007/9/19/106
Please, take a look,
Thanks,
Valentine.

> 
>> -	csr = ioremap(bar, 8);
>> +	csr = pci_iomap(dev, 0, 8);
>>  	if (!csr) {
>>  		printk(KERN_WARNING "PCI: Can't map %s e100 registers\n",
>>  			pci_name(dev));
>> -		return;
>> +		goto e100_quirk_exit;
>>  	}
>>  
>>  	cmd_hi = readb(csr + 3);
>> @@ -1495,7 +1496,9 @@
>>  		writeb(1, csr + 3);
>>  	}
>>  
>> -	iounmap(csr);
>> +	pci_iounmap(dev, csr);
>> +e100_quirk_exit:
>> +	pci_release_region(dev, 0);
>>  }
>>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt);
>>  
>> -
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/


      reply	other threads:[~2007-09-20 11:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-18 11:17 [PATCH] pci: Fix e100 interrupt quirk Valentine Barshak
2007-09-19 10:43 ` Jarek Poplawski
2007-09-19 10:59   ` Valentine Barshak
2007-09-19 12:36   ` Valentine Barshak
2007-09-20  6:37 ` Andrew Morton
2007-09-20 11:33   ` Valentine Barshak [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46F25A82.8090300@ru.mvista.com \
    --to=vbarshak@ru.mvista.com \
    --cc=akpm@linux-foundation.org \
    --cc=auke-jan.h.kok@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.