lkml.org 
[lkml]   [2008]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 4/4] x86_64: check msr to get mmconfig for amd family 10h opteron v3
On Monday 11 February 2008 06:51:15 pm Andrew Morton wrote:
> On Mon, 11 Feb 2008 18:20:46 -0800 Yinghai Lu <Yinghai.Lu@Sun.COM> wrote:
>
> > On Monday 11 February 2008 05:09:44 pm Andrew Morton wrote:
> > > On Mon, 11 Feb 2008 16:48:35 -0800
> > > Yinghai Lu <Yinghai.Lu@Sun.COM> wrote:
> > >
> > > > From: Yinghai Lu <Yinghai.Lu@Sun.COM>
> > > >
> > > > so even booting kernel with acpi=off or even MCFG is not there, we still can
> > > > use MMCONFIG.
> > > >
> > >
> > > This patch threw a big reject. I didn't check why.
> > >
> > >
> > > > + pci_direct_conf1.read(0, bus, devfn, 0, 4, &l);
> > >
> > > When I fixed the reject, compilation failed here.
> > >
> > > arch/x86/pci/mmconfig-shared.c: In function 'pci_mmcfg_check_hostbridge':
> > > arch/x86/pci/mmconfig-shared.c:214: error: 'pci_direct_conf1' undeclared (first use in this function)
> > >
> > >
> > > What kernel are you patching?
> > >
> >
> > linus tree.
>
> hm. So why didn't it compile? pci_direct_conf1 is defined over in
> arch/x86/pci/direct.c and is not mentioned in any header file.

it is in arch/x86/pci/pci.h

and arch/x86/pci/mmconf_shared.c has one
#include "pci.h"

did you compile that for 32 bit?

YH

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b6ce068a1285a24185b01be8a49021827516b3e1

diff --git a/arch/x86/pci/pci.h b/arch/x86/pci/pci.h
index 36cb44c..3431518 100644 (file)
--- a/arch/x86/pci/pci.h
+++ b/arch/x86/pci/pci.h
@@ -85,10 +85,17 @@ extern spinlock_t pci_config_lock;
extern int (*pcibios_enable_irq)(struct pci_dev *dev);
extern void (*pcibios_disable_irq)(struct pci_dev *dev);

-extern int pci_conf1_write(unsigned int seg, unsigned int bus,
- unsigned int devfn, int reg, int len, u32 value);
-extern int pci_conf1_read(unsigned int seg, unsigned int bus,
- unsigned int devfn, int reg, int len, u32 *value);
+struct pci_raw_ops {
+ int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn,
+ int reg, int len, u32 *val);
+ int (*write)(unsigned int domain, unsigned int bus, unsigned int devfn,
+ int reg, int len, u32 val);
+};
+
+extern struct pci_raw_ops *raw_pci_ops;
+extern struct pci_raw_ops *raw_pci_ext_ops;
+
+extern struct pci_raw_ops pci_direct_conf1;

extern int pci_direct_probe(void);
extern void pci_direct_init(int type);

\
 
 \ /
  Last update: 2008-02-12 04:29    [W:0.815 / U:0.420 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site