* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [not found] <200711061033.lA6AXrhT018804@imap1.linux-foundation.org> @ 2007-11-06 15:10 ` Kamalesh Babulal 2007-11-06 15:29 ` Cornelia Huck 2007-11-06 21:10 ` Andrew Morton 0 siblings, 2 replies; 8+ messages in thread From: Kamalesh Babulal @ 2007-11-06 15:10 UTC (permalink / raw) To: akpm; +Cc: mm-commits, linux-kernel, linux390, linux-s390, Andy Whitcroft Hi Andrew, The build fails on the S390x with CC drivers/s390/char/sclp_cpi_sys.o drivers/s390/char/sclp_cpi_sys.c:242: error: variable `system_name_attr' has initializer but incomplete type drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `attr' specified in initializer drivers/s390/char/sclp_cpi_sys.c:243: error: extra brace group at end of initializer drivers/s390/char/sclp_cpi_sys.c:243: error: (near initialization for `system_name_attr') drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `show' specified in initializer drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `store' specified in initializer drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') drivers/s390/char/sclp_cpi_sys.c:264: error: variable `sysplex_name_attr' has initializer but incomplete type drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `attr' specified in initializer drivers/s390/char/sclp_cpi_sys.c:265: error: extra brace group at end of initializer drivers/s390/char/sclp_cpi_sys.c:265: error: (near initialization for `sysplex_name_attr') drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `show' specified in initializer drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `store' specified in initializer drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') drivers/s390/char/sclp_cpi_sys.c:287: error: variable `system_type_attr' has initializer but incomplete type drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `attr' specified in initializer drivers/s390/char/sclp_cpi_sys.c:288: error: extra brace group at end of initializer drivers/s390/char/sclp_cpi_sys.c:288: error: (near initialization for `system_type_attr') drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `show' specified in initializer drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `store' specified in initializer drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') drivers/s390/char/sclp_cpi_sys.c:317: error: variable `system_level_attr' has initializer but incomplete type drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `attr' specified in initializer drivers/s390/char/sclp_cpi_sys.c:318: error: extra brace group at end of initializer drivers/s390/char/sclp_cpi_sys.c:318: error: (near initialization for `system_level_attr') drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `show' specified in initializer drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `store' specified in initializer drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') drivers/s390/char/sclp_cpi_sys.c:333: error: variable `set_attr' has initializer but incomplete type drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `attr' specified in initializer drivers/s390/char/sclp_cpi_sys.c:334: error: extra brace group at end of initializer drivers/s390/char/sclp_cpi_sys.c:334: error: (near initialization for `set_attr') drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `show' specified in initializer drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `store' specified in initializer drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') drivers/s390/char/sclp_cpi_sys.c:337: error: invalid use of undefined type `struct subsys_attribute' drivers/s390/char/sclp_cpi_sys.c:337: error: initializer element is not constant drivers/s390/char/sclp_cpi_sys.c:337: error: (near initialization for `cpi_attrs[0]') drivers/s390/char/sclp_cpi_sys.c:338: error: invalid use of undefined type `struct subsys_attribute' drivers/s390/char/sclp_cpi_sys.c:338: error: initializer element is not constant drivers/s390/char/sclp_cpi_sys.c:338: error: (near initialization for `cpi_attrs[1]') drivers/s390/char/sclp_cpi_sys.c:339: error: invalid use of undefined type `struct subsys_attribute' drivers/s390/char/sclp_cpi_sys.c:339: error: initializer element is not constant drivers/s390/char/sclp_cpi_sys.c:339: error: (near initialization for `cpi_attrs[2]') drivers/s390/char/sclp_cpi_sys.c:340: error: invalid use of undefined type `struct subsys_attribute' drivers/s390/char/sclp_cpi_sys.c:340: error: initializer element is not constant drivers/s390/char/sclp_cpi_sys.c:340: error: (near initialization for `cpi_attrs[3]') drivers/s390/char/sclp_cpi_sys.c:341: error: invalid use of undefined type `struct subsys_attribute' drivers/s390/char/sclp_cpi_sys.c:341: error: initializer element is not constant drivers/s390/char/sclp_cpi_sys.c:341: error: (near initialization for `cpi_attrs[4]') drivers/s390/char/sclp_cpi_sys.c:349: error: syntax error before '(' token drivers/s390/char/sclp_cpi_sys.c: In function `cpi_init': drivers/s390/char/sclp_cpi_sys.c:379: error: implicit declaration of function `firmware_register' drivers/s390/char/sclp_cpi_sys.c:379: error: `cpi_subsys' undeclared (first use in this function) drivers/s390/char/sclp_cpi_sys.c:379: error: (Each undeclared identifier is reported only once drivers/s390/char/sclp_cpi_sys.c:379: error: for each function it appears in.) drivers/s390/char/sclp_cpi_sys.c:385: error: implicit declaration of function `firmware_unregister' drivers/s390/char/sclp_cpi_sys.c: At top level: drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 make[1]: *** [drivers/s390/char] Error 2 make: *** [drivers/s390] Error 2 The patch git-s390.patch is causing this failure. -- Thanks & Regards, Kamalesh Babulal, Linux Technology Center, IBM, ISTL. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 15:10 ` mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails Kamalesh Babulal @ 2007-11-06 15:29 ` Cornelia Huck 2007-11-06 16:42 ` Cornelia Huck 2007-11-06 21:10 ` Andrew Morton 1 sibling, 1 reply; 8+ messages in thread From: Cornelia Huck @ 2007-11-06 15:29 UTC (permalink / raw) To: Kamalesh Babulal Cc: akpm, mm-commits, linux-kernel, linux390, linux-s390, Andy Whitcroft, Greg K-H On Tue, 06 Nov 2007 20:40:02 +0530, Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote: > Hi Andrew, > > The build fails on the S390x with > > CC drivers/s390/char/sclp_cpi_sys.o > drivers/s390/char/sclp_cpi_sys.c:242: error: variable `system_name_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:243: error: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:264: error: variable `sysplex_name_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:265: error: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:287: error: variable `system_type_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:288: error: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:317: error: variable `system_level_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:318: error: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:333: error: variable `set_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:334: error: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:337: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:337: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:337: error: (near initialization for `cpi_attrs[0]') > drivers/s390/char/sclp_cpi_sys.c:338: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:338: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:338: error: (near initialization for `cpi_attrs[1]') > drivers/s390/char/sclp_cpi_sys.c:339: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:339: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:339: error: (near initialization for `cpi_attrs[2]') > drivers/s390/char/sclp_cpi_sys.c:340: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:340: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:340: error: (near initialization for `cpi_attrs[3]') > drivers/s390/char/sclp_cpi_sys.c:341: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:341: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:341: error: (near initialization for `cpi_attrs[4]') > drivers/s390/char/sclp_cpi_sys.c:349: error: syntax error before '(' token > drivers/s390/char/sclp_cpi_sys.c: In function `cpi_init': > drivers/s390/char/sclp_cpi_sys.c:379: error: implicit declaration of function `firmware_register' > drivers/s390/char/sclp_cpi_sys.c:379: error: `cpi_subsys' undeclared (first use in this function) > drivers/s390/char/sclp_cpi_sys.c:379: error: (Each undeclared identifier is reported only once > drivers/s390/char/sclp_cpi_sys.c:379: error: for each function it appears in.) > drivers/s390/char/sclp_cpi_sys.c:385: error: implicit declaration of function `firmware_unregister' > drivers/s390/char/sclp_cpi_sys.c: At top level: > drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known > make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 > make[1]: *** [drivers/s390/char] Error 2 > make: *** [drivers/s390] Error 2 > > The patch git-s390.patch is causing this failure. That's a clash between git-s390 and the recent kset cleanup. sclp_cpi_sys.c needs to be converted from firmware_register() to the new dynamic kset allocation (kset_create_and_register()) and the subsys_attributes to kobj_attributes (I may look at it later if I find some time). ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 15:29 ` Cornelia Huck @ 2007-11-06 16:42 ` Cornelia Huck 2007-11-06 19:58 ` Kamalesh Babulal 0 siblings, 1 reply; 8+ messages in thread From: Cornelia Huck @ 2007-11-06 16:42 UTC (permalink / raw) To: akpm Cc: Kamalesh Babulal, mm-commits, linux-kernel, linux390, linux-s390, Andy Whitcroft, Greg K-H, Michael Ernst, Martin Schwidefsky On Tue, 6 Nov 2007 16:29:39 +0100, Cornelia Huck <cornelia.huck@de.ibm.com> wrote: > That's a clash between git-s390 and the recent kset cleanup. > > sclp_cpi_sys.c needs to be converted from firmware_register() to the > new dynamic kset allocation (kset_create_and_register()) and the > subsys_attributes to kobj_attributes (I may look at it later if I find > some time). Adapt sclp_cpi_sys.c to the dynamic kset changes. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> --- drivers/s390/char/sclp_cpi_sys.c | 58 ++++++++++++++++++++++----------------- 1 files changed, 33 insertions(+), 25 deletions(-) Index: linux-2.6/drivers/s390/char/sclp_cpi_sys.c =================================================================== --- linux-2.6.orig/drivers/s390/char/sclp_cpi_sys.c 2007-11-06 17:08:59.000000000 +0100 +++ linux-2.6/drivers/s390/char/sclp_cpi_sys.c 2007-11-06 17:30:09.000000000 +0100 @@ -220,13 +220,15 @@ static void set_string(char *attr, const } } -static ssize_t system_name_show(struct kset *kset, char *page) +static ssize_t system_name_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", system_name); } -static ssize_t system_name_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_name_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -239,16 +241,18 @@ static ssize_t system_name_store(struct return len; } -static struct subsys_attribute system_name_attr = +static struct kobj_attribute system_name_attr = __ATTR(system_name, 0644, system_name_show, system_name_store); -static ssize_t sysplex_name_show(struct kset *kset, char *page) +static ssize_t sysplex_name_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", sysplex_name); } -static ssize_t sysplex_name_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t sysplex_name_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -261,17 +265,19 @@ static ssize_t sysplex_name_store(struct return len; } -static struct subsys_attribute sysplex_name_attr = +static struct kobj_attribute sysplex_name_attr = __ATTR(sysplex_name, 0644, sysplex_name_show, sysplex_name_store); -static ssize_t system_type_show(struct kset *kset, char *page) +static ssize_t system_type_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", system_type); } -static ssize_t system_type_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_type_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -284,18 +290,20 @@ static ssize_t system_type_store(struct return len; } -static struct subsys_attribute system_type_attr = +static struct kobj_attribute system_type_attr = __ATTR(system_type, 0644, system_type_show, system_type_store); -static ssize_t system_level_show(struct kset *kset, char *page) +static ssize_t system_level_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { unsigned long long level = system_level; return snprintf(page, PAGE_SIZE, "%#018llx\n", level); } -static ssize_t system_level_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_level_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { unsigned long long level; char *endp; @@ -314,12 +322,12 @@ static ssize_t system_level_store(struct return len; } -static struct subsys_attribute system_level_attr = +static struct kobj_attribute system_level_attr = __ATTR(system_level, 0644, system_level_show, system_level_store); -static ssize_t set_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t set_store(struct kobject *kobj, struct kobj_attribute *attr, + const char *buf, size_t len) { int rc; @@ -330,7 +338,7 @@ static ssize_t set_store(struct kset *ks return len; } -static struct subsys_attribute set_attr = +static struct kobj_attribute set_attr = __ATTR(set, 0200, NULL, set_store); static struct attribute *cpi_attrs[] = { @@ -346,7 +354,7 @@ static struct attribute_group cpi_attr_g .attrs = cpi_attrs, }; -static decl_subsys(cpi, NULL, NULL); +static struct kset *cpi_kset; int sclp_cpi_set_data(const char *system, const char *sysplex, const char *type, const u64 level) @@ -376,13 +384,13 @@ static int __init cpi_init(void) { int rc; - rc = firmware_register(&cpi_subsys); - if (rc) - return rc; + cpi_kset = kset_create_and_register("cpi", NULL, NULL, firmware_kset); + if (IS_ERR(cpi_kset)) + return PTR_ERR(cpi_kset); - rc = sysfs_create_group(&cpi_subsys.kobj, &cpi_attr_group); + rc = sysfs_create_group(&cpi_kset->kobj, &cpi_attr_group); if (rc) - firmware_unregister(&cpi_subsys); + kset_unregister(cpi_kset); return rc; } ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 16:42 ` Cornelia Huck @ 2007-11-06 19:58 ` Kamalesh Babulal 0 siblings, 0 replies; 8+ messages in thread From: Kamalesh Babulal @ 2007-11-06 19:58 UTC (permalink / raw) To: Cornelia Huck Cc: akpm, mm-commits, linux-kernel, linux390, linux-s390, Andy Whitcroft, Greg K-H, Michael Ernst, Martin Schwidefsky On Tue, Nov 06, 2007 at 05:42:08PM +0100, Cornelia Huck wrote: > On Tue, 6 Nov 2007 16:29:39 +0100, > Cornelia Huck <cornelia.huck@de.ibm.com> wrote: > > > That's a clash between git-s390 and the recent kset cleanup. > > > > sclp_cpi_sys.c needs to be converted from firmware_register() to the > > new dynamic kset allocation (kset_create_and_register()) and the > > subsys_attributes to kobj_attributes (I may look at it later if I find > > some time). > > Adapt sclp_cpi_sys.c to the dynamic kset changes. Hi Cornelia, Thanks, the patch fixes the build failure. Tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> --- drivers/s390/char/sclp_cpi_sys.c | 58 ++++++++++++++++++++++----------------- 1 files changed, 33 insertions(+), 25 deletions(-) Index: linux-2.6/drivers/s390/char/sclp_cpi_sys.c =================================================================== --- linux-2.6.orig/drivers/s390/char/sclp_cpi_sys.c 2007-11-06 17:08:59.000000000 +0100 +++ linux-2.6/drivers/s390/char/sclp_cpi_sys.c 2007-11-06 17:30:09.000000000 +0100 @@ -220,13 +220,15 @@ static void set_string(char *attr, const } } -static ssize_t system_name_show(struct kset *kset, char *page) +static ssize_t system_name_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", system_name); } -static ssize_t system_name_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_name_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -239,16 +241,18 @@ static ssize_t system_name_store(struct return len; } -static struct subsys_attribute system_name_attr = +static struct kobj_attribute system_name_attr = __ATTR(system_name, 0644, system_name_show, system_name_store); -static ssize_t sysplex_name_show(struct kset *kset, char *page) +static ssize_t sysplex_name_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", sysplex_name); } -static ssize_t sysplex_name_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t sysplex_name_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -261,17 +265,19 @@ static ssize_t sysplex_name_store(struct return len; } -static struct subsys_attribute sysplex_name_attr = +static struct kobj_attribute sysplex_name_attr = __ATTR(sysplex_name, 0644, sysplex_name_show, sysplex_name_store); -static ssize_t system_type_show(struct kset *kset, char *page) +static ssize_t system_type_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { return snprintf(page, PAGE_SIZE, "%s\n", system_type); } -static ssize_t system_type_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_type_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { int rc; @@ -284,18 +290,20 @@ static ssize_t system_type_store(struct return len; } -static struct subsys_attribute system_type_attr = +static struct kobj_attribute system_type_attr = __ATTR(system_type, 0644, system_type_show, system_type_store); -static ssize_t system_level_show(struct kset *kset, char *page) +static ssize_t system_level_show(struct kobject *kobj, + struct kobj_attribute *attr, char *page) { unsigned long long level = system_level; return snprintf(page, PAGE_SIZE, "%#018llx\n", level); } -static ssize_t system_level_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t system_level_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, + size_t len) { unsigned long long level; char *endp; @@ -314,12 +322,12 @@ static ssize_t system_level_store(struct return len; } -static struct subsys_attribute system_level_attr = +static struct kobj_attribute system_level_attr = __ATTR(system_level, 0644, system_level_show, system_level_store); -static ssize_t set_store(struct kset *kset, const char *buf, - size_t len) +static ssize_t set_store(struct kobject *kobj, struct kobj_attribute *attr, + const char *buf, size_t len) { int rc; @@ -330,7 +338,7 @@ static ssize_t set_store(struct kset *ks return len; } -static struct subsys_attribute set_attr = +static struct kobj_attribute set_attr = __ATTR(set, 0200, NULL, set_store); static struct attribute *cpi_attrs[] = { @@ -346,7 +354,7 @@ static struct attribute_group cpi_attr_g .attrs = cpi_attrs, }; -static decl_subsys(cpi, NULL, NULL); +static struct kset *cpi_kset; int sclp_cpi_set_data(const char *system, const char *sysplex, const char *type, const u64 level) @@ -376,13 +384,13 @@ static int __init cpi_init(void) { int rc; - rc = firmware_register(&cpi_subsys); - if (rc) - return rc; + cpi_kset = kset_create_and_register("cpi", NULL, NULL, firmware_kset); + if (IS_ERR(cpi_kset)) + return PTR_ERR(cpi_kset); - rc = sysfs_create_group(&cpi_subsys.kobj, &cpi_attr_group); + rc = sysfs_create_group(&cpi_kset->kobj, &cpi_attr_group); if (rc) - firmware_unregister(&cpi_subsys); + kset_unregister(cpi_kset); return rc; } ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 15:10 ` mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails Kamalesh Babulal 2007-11-06 15:29 ` Cornelia Huck @ 2007-11-06 21:10 ` Andrew Morton 2007-11-06 21:13 ` Greg KH 1 sibling, 1 reply; 8+ messages in thread From: Andrew Morton @ 2007-11-06 21:10 UTC (permalink / raw) To: Kamalesh Babulal; +Cc: linux-kernel, linux390, linux-s390, apw, Greg KH > On Tue, 06 Nov 2007 20:40:02 +0530 Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote: > Hi Andrew, > > The build fails on the S390x with > > CC drivers/s390/char/sclp_cpi_sys.o > drivers/s390/char/sclp_cpi_sys.c:242: error: variable `system_name_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:243: error: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:243: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:243: warning: (near initialization for `system_name_attr') > drivers/s390/char/sclp_cpi_sys.c:264: error: variable `sysplex_name_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:265: error: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:265: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:265: warning: (near initialization for `sysplex_name_attr') > drivers/s390/char/sclp_cpi_sys.c:287: error: variable `system_type_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:288: error: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:288: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:288: warning: (near initialization for `system_type_attr') > drivers/s390/char/sclp_cpi_sys.c:317: error: variable `system_level_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:318: error: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:318: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:318: warning: (near initialization for `system_level_attr') > drivers/s390/char/sclp_cpi_sys.c:333: error: variable `set_attr' has initializer but incomplete type > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `attr' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: error: extra brace group at end of initializer > drivers/s390/char/sclp_cpi_sys.c:334: error: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `show' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:334: error: unknown field `store' specified in initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: excess elements in struct initializer > drivers/s390/char/sclp_cpi_sys.c:334: warning: (near initialization for `set_attr') > drivers/s390/char/sclp_cpi_sys.c:337: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:337: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:337: error: (near initialization for `cpi_attrs[0]') > drivers/s390/char/sclp_cpi_sys.c:338: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:338: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:338: error: (near initialization for `cpi_attrs[1]') > drivers/s390/char/sclp_cpi_sys.c:339: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:339: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:339: error: (near initialization for `cpi_attrs[2]') > drivers/s390/char/sclp_cpi_sys.c:340: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:340: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:340: error: (near initialization for `cpi_attrs[3]') > drivers/s390/char/sclp_cpi_sys.c:341: error: invalid use of undefined type `struct subsys_attribute' > drivers/s390/char/sclp_cpi_sys.c:341: error: initializer element is not constant > drivers/s390/char/sclp_cpi_sys.c:341: error: (near initialization for `cpi_attrs[4]') > drivers/s390/char/sclp_cpi_sys.c:349: error: syntax error before '(' token > drivers/s390/char/sclp_cpi_sys.c: In function `cpi_init': > drivers/s390/char/sclp_cpi_sys.c:379: error: implicit declaration of function `firmware_register' > drivers/s390/char/sclp_cpi_sys.c:379: error: `cpi_subsys' undeclared (first use in this function) > drivers/s390/char/sclp_cpi_sys.c:379: error: (Each undeclared identifier is reported only once > drivers/s390/char/sclp_cpi_sys.c:379: error: for each function it appears in.) > drivers/s390/char/sclp_cpi_sys.c:385: error: implicit declaration of function `firmware_unregister' > drivers/s390/char/sclp_cpi_sys.c: At top level: > drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known > drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known > make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 > make[1]: *** [drivers/s390/char] Error 2 > make: *** [drivers/s390] Error 2 > > The patch git-s390.patch is causing this failure. git-s390 newly adds that file. I suspect that this code works OK for the s390 guys (they're using Linux). But Greg's driver tree basically ports their driver to Gregnux, in which nothing works any more. Greg, this is turning into a bit of a trainwreck. Can you please have a think about how we can provide a bit of back-compatibility to ease this transition rather than just trashing everything? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 21:10 ` Andrew Morton @ 2007-11-06 21:13 ` Greg KH 2007-11-06 22:33 ` Andrew Morton 0 siblings, 1 reply; 8+ messages in thread From: Greg KH @ 2007-11-06 21:13 UTC (permalink / raw) To: Andrew Morton; +Cc: Kamalesh Babulal, linux-kernel, linux390, linux-s390, apw On Tue, Nov 06, 2007 at 01:10:37PM -0800, Andrew Morton wrote: > > On Tue, 06 Nov 2007 20:40:02 +0530 Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote: > > drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known > > drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known > > drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known > > drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known > > drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known > > make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 > > make[1]: *** [drivers/s390/char] Error 2 > > make: *** [drivers/s390] Error 2 > > > > The patch git-s390.patch is causing this failure. > > git-s390 newly adds that file. I suspect that this code works OK for the > s390 guys (they're using Linux). But Greg's driver tree basically ports > their driver to Gregnux, in which nothing works any more. > > Greg, this is turning into a bit of a trainwreck. Can you please have a > think about how we can provide a bit of back-compatibility to ease this > transition rather than just trashing everything? It's _always_ a trainwreck when I touch anything in the driver core, look at how many individual patches it took to do a lot of this work (50+ and still growing). My method is to introduce the new api, convert everyone over to it, and then remove the old crappy one. Now for dealing with external trees, I have _no_ visiblity into them for the most part. I can't build s390 stuff (no cross compiler), so I can't even test their changes. But, there really should not be that many places that are touching these types of things that I am currently changing (ksets and ktypes and subsystems.) So, how do I do this? Do I just not let my changes trickle into your tree, and hold off until I merge them with Linus, hoping that me and Kay have tested everything good enough? That way, no build ever should break, but functionality might not be all working as well as it could be. Or we live with some breakage as you pull my stuff into your tree. Either way, I'm glad to help fix the broken stuff, and I'm also glad to take the responsibility for getting this all right the first time it goes to Linus. What do you think is best to do? thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 21:13 ` Greg KH @ 2007-11-06 22:33 ` Andrew Morton 2007-11-06 21:39 ` Greg KH 0 siblings, 1 reply; 8+ messages in thread From: Andrew Morton @ 2007-11-06 22:33 UTC (permalink / raw) To: Greg KH; +Cc: kamalesh, linux-kernel, linux390, linux-s390, apw > On Tue, 6 Nov 2007 13:13:45 -0800 Greg KH <greg@kroah.com> wrote: > On Tue, Nov 06, 2007 at 01:10:37PM -0800, Andrew Morton wrote: > > > On Tue, 06 Nov 2007 20:40:02 +0530 Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote: > > > drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known > > > drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known > > > drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known > > > drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known > > > drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known > > > make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 > > > make[1]: *** [drivers/s390/char] Error 2 > > > make: *** [drivers/s390] Error 2 > > > > > > The patch git-s390.patch is causing this failure. > > > > git-s390 newly adds that file. I suspect that this code works OK for the > > s390 guys (they're using Linux). But Greg's driver tree basically ports > > their driver to Gregnux, in which nothing works any more. > > > > Greg, this is turning into a bit of a trainwreck. Can you please have a > > think about how we can provide a bit of back-compatibility to ease this > > transition rather than just trashing everything? > > It's _always_ a trainwreck when I touch anything in the driver core, > look at how many individual patches it took to do a lot of this work > (50+ and still growing). My method is to introduce the new api, convert > everyone over to it, and then remove the old crappy one. > > Now for dealing with external trees, I have _no_ visiblity into them for > the most part. I can't build s390 stuff (no cross compiler), so I can't > even test their changes. > > But, there really should not be that many places that are touching these > types of things that I am currently changing (ksets and ktypes and > subsystems.) > > So, how do I do this? Do I just not let my changes trickle into your > tree, and hold off until I merge them with Linus, hoping that me and Kay > have tested everything good enough? That way, no build ever should > break, but functionality might not be all working as well as it could > be. > > Or we live with some breakage as you pull my stuff into your tree. > > Either way, I'm glad to help fix the broken stuff, and I'm also glad to > take the responsibility for getting this all right the first time it > goes to Linus. > > What do you think is best to do? > Leave the old interfaces in place, deprecate them, remove them later. If at all possible. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails 2007-11-06 22:33 ` Andrew Morton @ 2007-11-06 21:39 ` Greg KH 0 siblings, 0 replies; 8+ messages in thread From: Greg KH @ 2007-11-06 21:39 UTC (permalink / raw) To: Andrew Morton; +Cc: kamalesh, linux-kernel, linux390, linux-s390, apw On Tue, Nov 06, 2007 at 02:33:44PM -0800, Andrew Morton wrote: > > On Tue, 6 Nov 2007 13:13:45 -0800 Greg KH <greg@kroah.com> wrote: > > On Tue, Nov 06, 2007 at 01:10:37PM -0800, Andrew Morton wrote: > > > > On Tue, 06 Nov 2007 20:40:02 +0530 Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> wrote: > > > > drivers/s390/char/sclp_cpi_sys.c:242: error: storage size of `system_name_attr' isn't known > > > > drivers/s390/char/sclp_cpi_sys.c:264: error: storage size of `sysplex_name_attr' isn't known > > > > drivers/s390/char/sclp_cpi_sys.c:287: error: storage size of `system_type_attr' isn't known > > > > drivers/s390/char/sclp_cpi_sys.c:317: error: storage size of `system_level_attr' isn't known > > > > drivers/s390/char/sclp_cpi_sys.c:333: error: storage size of `set_attr' isn't known > > > > make[2]: *** [drivers/s390/char/sclp_cpi_sys.o] Error 1 > > > > make[1]: *** [drivers/s390/char] Error 2 > > > > make: *** [drivers/s390] Error 2 > > > > > > > > The patch git-s390.patch is causing this failure. > > > > > > git-s390 newly adds that file. I suspect that this code works OK for the > > > s390 guys (they're using Linux). But Greg's driver tree basically ports > > > their driver to Gregnux, in which nothing works any more. > > > > > > Greg, this is turning into a bit of a trainwreck. Can you please have a > > > think about how we can provide a bit of back-compatibility to ease this > > > transition rather than just trashing everything? > > > > It's _always_ a trainwreck when I touch anything in the driver core, > > look at how many individual patches it took to do a lot of this work > > (50+ and still growing). My method is to introduce the new api, convert > > everyone over to it, and then remove the old crappy one. > > > > Now for dealing with external trees, I have _no_ visiblity into them for > > the most part. I can't build s390 stuff (no cross compiler), so I can't > > even test their changes. > > > > But, there really should not be that many places that are touching these > > types of things that I am currently changing (ksets and ktypes and > > subsystems.) > > > > So, how do I do this? Do I just not let my changes trickle into your > > tree, and hold off until I merge them with Linus, hoping that me and Kay > > have tested everything good enough? That way, no build ever should > > break, but functionality might not be all working as well as it could > > be. > > > > Or we live with some breakage as you pull my stuff into your tree. > > > > Either way, I'm glad to help fix the broken stuff, and I'm also glad to > > take the responsibility for getting this all right the first time it > > goes to Linus. > > > > What do you think is best to do? > > > > Leave the old interfaces in place, deprecate them, remove them later. If > at all possible. It's usually not a matter of them being "interfaces" but structure changes. The only way to slim these things down into something that works properly (ksets being dynamic instead of static), and changing the majority of these ksets into kobjects as ksets is not the correct usage, doesn't lend themselves to being able to keep the old stuff around anymore. Almost all of these build problems are a simple one-line change in the offending code, so it's not a tough change for me to do on stuff in your tree. thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-11-06 22:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200711061033.lA6AXrhT018804@imap1.linux-foundation.org>
2007-11-06 15:10 ` mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails Kamalesh Babulal
2007-11-06 15:29 ` Cornelia Huck
2007-11-06 16:42 ` Cornelia Huck
2007-11-06 19:58 ` Kamalesh Babulal
2007-11-06 21:10 ` Andrew Morton
2007-11-06 21:13 ` Greg KH
2007-11-06 22:33 ` Andrew Morton
2007-11-06 21:39 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).