Hi All, In trying to build OFED 1.5.1 with RHEL4U7's linux-2.6.9-78.0.24 kernel, I am getting the following errors:
gcc
-Wp,-MD,/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/.ipath_driver.o.d
-nostdinc -iwithprefix include -D__KERNEL__ -D__OFED_BUILD__ -include
include/linux/autoconf.h -include
/cache/build/BUILD/ofa_kernel-1.5.1/include/linux/autoconf.h
-I/cache/build/BUILD/ofa_kernel-1.5.1/kernel_addons/backport/2.6.9_U7/include/
-I/cache/build/BUILD/ofa_kernel-1.5.1/include
-I/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/debug
-I/usr/local/include/scst
-I/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/ulp/srpt
-I/cache/build/BUILD/ofa_kernel-1.5.1/drivers/net/cxgb3 -Iinclude
-I/cache/build/BUILD/lustre-kernel-2.6.9/lustre-1.8.3.53/linux-2.6.9-78.0.24/arch//include
-Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-Os -fomit-frame-pointer -g -Wdeclaration-after-statement -mno-red-zone
-mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -funit-at-a-time
-DIPATH_IDSTR=QLogic kernel.org driver -DIPATH_KERN_TYPE=0 -DMODULE
-DKBUILD_BASENAME=ipath_driver -DKBUILD_MODNAME=ib_ipath -c -o
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/.tmp_ipath_driver.o
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:150:
error: unknown field `groups' specified in initializer
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:150:
warning: initialization from incompatible pointer type
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:
In function `ipath_verify_pioperf':
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:366:
warning: implicit declaration of function `__iowrite32_copy'
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:
In function `ipath_init_one':
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:620:
warning: passing arg 1 of `iounmap' discards qualifiers from pointer target
type
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:
In function `ipath_remove_one':
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:789:
warning: passing arg 1 of `iounmap' discards qualifiers from pointer target
type
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:
In function `ipath_reset_device':
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:2598:
warning: implicit declaration of function `pid_nr'
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:
In function `ipath_signal_procs':
/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.c:2656:
warning: implicit declaration of function `kill_pid'
make[4]: ***
[/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath/ipath_driver.o]
Error 1
make[3]: *** [/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband/hw/ipath]
Error 2
make[2]: *** [/cache/build/BUILD/ofa_kernel-1.5.1/drivers/infiniband] Error 2
make[1]: *** [_module_/cache/build/BUILD/ofa_kernel-1.5.1] Error 2
make[1]: Leaving directory
`/cache/build/BUILD/lustre-kernel-2.6.9/lustre-1.8.3.53/linux-2.6.9-78.0.24'
make: *** [kernel] Error 2
I know these sorts of things usually wind up being operator error but
I've checked the release notes and they specify as supported:
- RedHat EL4 up7 2.6.9-78.ELsmp
Does that really preclude the 2.6.9-78.0.24 variant of that kernel?
I have checked into the nature of the problem and found that the struct
being initialized is:
static struct pci_driver ipath_driver = {
.name = IPATH_DRV_NAME,
.probe = ipath_init_one,
.remove = __devexit_p(ipath_remove_one),
.id_table = ipath_pci_tbl,
.driver = {
.groups = ipath_driver_attr_groups,
},
};
struct pci_driver has the following definition:
struct pci_driver {
struct list_head node;
char *name;
const struct pci_device_id *id_table; /* must be non-NULL for probe
to be called */
int (*probe) (struct pci_dev *dev, const struct pci_device_id *id);
/* New device inserted */
void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not
a hot-plug capable driver) */
int (*suspend) (struct pci_dev *dev, u32 state); /* Device
suspended */
int (*resume) (struct pci_dev *dev); /* Device woken
up */
int (*enable_wake) (struct pci_dev *dev, u32 state, int enable); /*
Enable wake event */
struct device_driver driver;
struct pci_dynids dynids;
};
and struct device_driver the following definition:
struct device_driver {
char * name;
struct bus_type * bus;
struct semaphore unload_sem;
struct kobject kobj;
struct list_head devices;
int (*probe) (struct device * dev);
int (*remove) (struct device * dev);
void (*shutdown) (struct device * dev);
int (*suspend) (struct device * dev, u32 state, u32 level);
int (*resume) (struct device * dev, u32 level);
};
So, indeed, no groups member in struct device_driver.
I also checked
ofa_kernel-1.5.1/kernel_addons/backport/2.6.9_U7/include/linux/device.h
to make sure there was not a backport override that I was not missing
and there is not.
Looking at linux-2.6.9-78, the story is the same though. No .groups
member of struct device_driver.
So what am I missing here?
Cheers,
b.
signature.asc
Description: This is a digitally signed message part
_______________________________________________ ewg mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
