From: Martin Mares <mj@ucw.cz>
To: "Durairaj, Sundarapandian" <sundarapandian.durairaj@intel.com>
Cc: linux-kernel@vger.kernel.org, linux-pci@atrey.karlin.mff.cuni.cz,
torvalds@osdl.org, alan@lxorguk.ukuu.org.uk, greg@kroah.com,
Andi Kleen <ak@colin2.muc.de>,
"Kondratiev, Vladimir" <vladimir.kondratiev@intel.com>,
"Seshadri, Harinarayanan" <harinarayanan.seshadri@intel.com>
Subject: Re: [patch] PCI Express Enhanced Config Patch - 2.6.0-test11
Date: Thu, 22 Jan 2004 12:09:14 +0100 [thread overview]
Message-ID: <20040122110914.GA1376@ucw.cz> (raw)
In-Reply-To: <6B09584CC3D2124DB45C3B592414FA83011A3357@bgsmsx402.gar.corp.intel.com>
Hello!
> I am reposting the updated patch after incorporating the review comments.
Looks good, but there are still some places to polish (in addition to
Andrew's comments):
> + to access the pci configuration space through enhanced config
> + access mechanism (Will work only on PCI Express based system)
"pci" should be "PCI".
> + mcfg = (struct acpi_table_mcfg *) __acpi_map_table
> + (phys_addr, size);
Wrapping long lines is good, but you seem to overdo it.
> + printk(KERN_INFO PREFIX "Local mcfg address %p\n",
> + mcfg->base_address);
Again -- you should be consistent in usign caps: "MCFG", not "mcfg".
> +#ifdef CONFIG_PCI_EXPRESS
> + else if (!strcmp(str, "no_pcie")) {
Why "no_pcie" with an underscore when existing switches ("noacpi", "nobios"
etc.) don't have one?
> + if (mmcfg_base_address == 0){
> + printk(KERN_INFO
> + "MCFG table entry is not found in ACPI
> tables....\n \
> + PCI Express not supported in this platform....\n
> \
> + Not enabling Enhanced Configuration....\n");
> + goto type1;
> + }
Why printing such a enormous banner for reporting a trivial error?
One line is enough.
> + printk(KERN_INFO "PCI:Using config type PCIExp\n");
"PCI:Using" -> "PCI: Using".
> obj-$(CONFIG_PCI_DIRECT) += direct.o
> +obj-$(CONFIG_PCI_EXPRES) += direct.o
PCI_EXPRES -> PCI_EXPRESS
Also, linking the same object twice doesn't look right.
> +static int pci_cfg_space_size (struct pci_dev *dev)
> +{
> +#ifdef CONFIG_PCI_EXPRESS
> + /* Find whether the device is PCI Express device */
> + int is_pci_express_dev =
> + pci_find_capability(dev, PCI_CAP_ID_EXP);
> + if (is_pci_express_dev)
> + return PCI_CFG_SPACE_EXP_SIZE;
> + else
> +#endif
> + return PCI_CFG_SPACE_SIZE;
> +}
We really shouldn't scan the capability list during each access to /proc/bus/pci.
Better calculate the configuration space size when probing the device
and put it to struct pci_dev.
> +#ifdef CONFIG_PCI_EXPRESS
> +/*
> + *Variable used to store the base address of the last pciexpress device
> + *accessed.
> + */
> +static u32 pcie_last_accessed_device;
Header files should not contain static variables.
> +static __inline__ void pci_express_read(int bus, int devfn, int reg,
> + int len, u32 *value)
Why is this inline?
> + u64 base_address;
If the base_address is 64-bit and you stuff it in a 32-bit variable, you
should check the upper 32 bits and in case they are non-zero, print an error
message.
Have a nice fortnight
--
Martin `MJ' Mares <mj@ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
Entropy isn't what it used to be.
next prev parent reply other threads:[~2004-01-22 11:09 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-22 10:21 [patch] PCI Express Enhanced Config Patch - 2.6.0-test11 Durairaj, Sundarapandian
2004-01-22 10:44 ` Andrew Morton
2004-01-22 11:09 ` Martin Mares [this message]
2004-01-22 13:12 ` Andi Kleen
2004-01-22 18:21 ` Alan Cox
2004-01-22 19:40 ` Randy.Dunlap
2004-01-23 19:19 ` Pavel Machek
2004-01-23 19:31 ` Martin Mares
2004-01-23 20:08 ` Stefan Smietanowski
2004-01-22 16:40 ` Grant Grundler
2004-01-22 17:00 ` Greg KH
-- strict thread matches above, loose matches on Subject: below --
2004-01-30 16:58 Nakajima, Jun
2004-01-29 11:32 Durairaj, Sundarapandian
2004-01-29 15:09 ` Matthew Wilcox
2004-01-29 15:59 ` Matthew Wilcox
2004-01-29 16:05 ` Linus Torvalds
2004-01-29 16:42 ` Matthew Wilcox
2004-01-29 16:52 ` Linus Torvalds
2004-01-31 21:57 ` Eric W. Biederman
2004-02-01 4:41 ` Grant Grundler
2004-02-01 5:10 ` Matthew Wilcox
2004-02-01 11:00 ` Eric W. Biederman
2004-02-01 15:18 ` Matthew Wilcox
2004-02-01 18:28 ` Eric W. Biederman
2004-02-01 20:11 ` Matthew Wilcox
2004-02-01 21:35 ` Eric W. Biederman
2004-02-01 11:10 ` Eric W. Biederman
2004-01-29 18:09 ` Greg KH
2004-01-30 16:33 ` Greg KH
2004-01-28 9:38 Durairaj, Sundarapandian
2004-01-28 14:42 ` Vladimir Kondratiev
2004-01-28 14:54 ` Christoph Hellwig
2004-01-28 15:00 ` Martin Mares
2004-01-28 15:18 ` Matthew Wilcox
2004-01-07 16:44 Nakajima, Jun
2004-01-07 12:59 Durairaj, Sundarapandian
2004-01-07 14:08 ` Meelis Roos
2004-01-07 17:34 ` Vladimir Kondratiev
[not found] <183UK-2Re-11@gated-at.bofh.it>
2003-12-29 19:12 ` Andi Kleen
2003-12-29 11:32 Durairaj, Sundarapandian
2003-12-29 11:53 ` Arjan van de Ven
2003-12-29 11:55 ` Christoph Hellwig
2003-12-29 12:51 ` Johan Sjoholm
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=20040122110914.GA1376@ucw.cz \
--to=mj@ucw.cz \
--cc=ak@colin2.muc.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=greg@kroah.com \
--cc=harinarayanan.seshadri@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=sundarapandian.durairaj@intel.com \
--cc=torvalds@osdl.org \
--cc=vladimir.kondratiev@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox