Mailing List Archive

Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails
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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
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).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
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;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
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;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
> 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?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: mm snapshot broken-out-2007-11-06-02-32.tar.gz uploaded - S390x build fails [ In reply to ]
> 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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/