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 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.