Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-23 Thread Thomas Gleixner
On Sun, 2007-09-23 at 10:52 +0900, Akinobu Mita wrote:
> > >  arch/i386/kernel/cpuid.c |   32 +++-
> > >  1 file changed, 19 insertions(+), 13 deletions(-)
> > >
> > > Index: linux/arch/i386/kernel/cpuid.c
> > > ===
> > > --- linux.orig/arch/i386/kernel/cpuid.c
> > > +++ linux/arch/i386/kernel/cpuid.c
> > > @@ -136,15 +136,18 @@ static const struct file_operations cpui
> > >   .open = cpuid_open,
> > >  };
> > >
> > > -static int __cpuinit cpuid_device_create(int i)
> > > +static int cpuid_device_create(int cpu)
> >
> > __cpuinit please
> >
> 
> Yes. This eliminates earlier patch in this series.
> ([22/50] i386: Misc cpuinit annotation)

No, it's even worse:

#22 is applied before #35. 
#35 is reverting the __cpuinit anotation of #22 with its modificiations
of cpuid_device_create()

tglx


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


Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-23 Thread Thomas Gleixner
On Sun, 2007-09-23 at 10:52 +0900, Akinobu Mita wrote:
arch/i386/kernel/cpuid.c |   32 +++-
1 file changed, 19 insertions(+), 13 deletions(-)
  
   Index: linux/arch/i386/kernel/cpuid.c
   ===
   --- linux.orig/arch/i386/kernel/cpuid.c
   +++ linux/arch/i386/kernel/cpuid.c
   @@ -136,15 +136,18 @@ static const struct file_operations cpui
 .open = cpuid_open,
};
  
   -static int __cpuinit cpuid_device_create(int i)
   +static int cpuid_device_create(int cpu)
 
  __cpuinit please
 
 
 Yes. This eliminates earlier patch in this series.
 ([22/50] i386: Misc cpuinit annotation)

No, it's even worse:

#22 is applied before #35. 
#35 is reverting the __cpuinit anotation of #22 with its modificiations
of cpuid_device_create()

tglx


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


Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-22 Thread Akinobu Mita
2007/9/23, Thomas Gleixner <[EMAIL PROTECTED]>:
> On Sat, 2007-09-22 at 00:32 +0200, Andi Kleen wrote:
> > From: Akinobu Mita <[EMAIL PROTECTED]>
> >
> > Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.
> >
> > Cc: "H. Peter Anvin" <[EMAIL PROTECTED]>
> > Signed-off-by: Akinobu Mita <[EMAIL PROTECTED]>
> > Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
> > Cc: Gautham R Shenoy <[EMAIL PROTECTED]>
> > Cc: Oleg Nesterov <[EMAIL PROTECTED]>
> > Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
> > ---
> >
> >  arch/i386/kernel/cpuid.c |   32 +++-
> >  1 file changed, 19 insertions(+), 13 deletions(-)
> >
> > Index: linux/arch/i386/kernel/cpuid.c
> > ===
> > --- linux.orig/arch/i386/kernel/cpuid.c
> > +++ linux/arch/i386/kernel/cpuid.c
> > @@ -136,15 +136,18 @@ static const struct file_operations cpui
> >   .open = cpuid_open,
> >  };
> >
> > -static int __cpuinit cpuid_device_create(int i)
> > +static int cpuid_device_create(int cpu)
>
> __cpuinit please
>

Yes. This eliminates earlier patch in this series.
([22/50] i386: Misc cpuinit annotation)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-22 Thread Thomas Gleixner
On Sat, 2007-09-22 at 00:32 +0200, Andi Kleen wrote:
> From: Akinobu Mita <[EMAIL PROTECTED]>
> 
> Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.
> 
> Cc: "H. Peter Anvin" <[EMAIL PROTECTED]>
> Signed-off-by: Akinobu Mita <[EMAIL PROTECTED]>
> Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
> Cc: Gautham R Shenoy <[EMAIL PROTECTED]>
> Cc: Oleg Nesterov <[EMAIL PROTECTED]>
> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
> ---
> 
>  arch/i386/kernel/cpuid.c |   32 +++-
>  1 file changed, 19 insertions(+), 13 deletions(-)
> 
> Index: linux/arch/i386/kernel/cpuid.c
> ===
> --- linux.orig/arch/i386/kernel/cpuid.c
> +++ linux/arch/i386/kernel/cpuid.c
> @@ -136,15 +136,18 @@ static const struct file_operations cpui
>   .open = cpuid_open,
>  };
>  
> -static int __cpuinit cpuid_device_create(int i)
> +static int cpuid_device_create(int cpu)

__cpuinit please

Thanks,

tglx



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


Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-22 Thread Thomas Gleixner
On Sat, 2007-09-22 at 00:32 +0200, Andi Kleen wrote:
 From: Akinobu Mita [EMAIL PROTECTED]
 
 Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.
 
 Cc: H. Peter Anvin [EMAIL PROTECTED]
 Signed-off-by: Akinobu Mita [EMAIL PROTECTED]
 Signed-off-by: Andi Kleen [EMAIL PROTECTED]
 Cc: Gautham R Shenoy [EMAIL PROTECTED]
 Cc: Oleg Nesterov [EMAIL PROTECTED]
 Signed-off-by: Andrew Morton [EMAIL PROTECTED]
 ---
 
  arch/i386/kernel/cpuid.c |   32 +++-
  1 file changed, 19 insertions(+), 13 deletions(-)
 
 Index: linux/arch/i386/kernel/cpuid.c
 ===
 --- linux.orig/arch/i386/kernel/cpuid.c
 +++ linux/arch/i386/kernel/cpuid.c
 @@ -136,15 +136,18 @@ static const struct file_operations cpui
   .open = cpuid_open,
  };
  
 -static int __cpuinit cpuid_device_create(int i)
 +static int cpuid_device_create(int cpu)

__cpuinit please

Thanks,

tglx



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


Re: [PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-22 Thread Akinobu Mita
2007/9/23, Thomas Gleixner [EMAIL PROTECTED]:
 On Sat, 2007-09-22 at 00:32 +0200, Andi Kleen wrote:
  From: Akinobu Mita [EMAIL PROTECTED]
 
  Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.
 
  Cc: H. Peter Anvin [EMAIL PROTECTED]
  Signed-off-by: Akinobu Mita [EMAIL PROTECTED]
  Signed-off-by: Andi Kleen [EMAIL PROTECTED]
  Cc: Gautham R Shenoy [EMAIL PROTECTED]
  Cc: Oleg Nesterov [EMAIL PROTECTED]
  Signed-off-by: Andrew Morton [EMAIL PROTECTED]
  ---
 
   arch/i386/kernel/cpuid.c |   32 +++-
   1 file changed, 19 insertions(+), 13 deletions(-)
 
  Index: linux/arch/i386/kernel/cpuid.c
  ===
  --- linux.orig/arch/i386/kernel/cpuid.c
  +++ linux/arch/i386/kernel/cpuid.c
  @@ -136,15 +136,18 @@ static const struct file_operations cpui
.open = cpuid_open,
   };
 
  -static int __cpuinit cpuid_device_create(int i)
  +static int cpuid_device_create(int cpu)

 __cpuinit please


Yes. This eliminates earlier patch in this series.
([22/50] i386: Misc cpuinit annotation)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-21 Thread Andi Kleen

From: Akinobu Mita <[EMAIL PROTECTED]>

Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

Cc: "H. Peter Anvin" <[EMAIL PROTECTED]>
Signed-off-by: Akinobu Mita <[EMAIL PROTECTED]>
Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
Cc: Gautham R Shenoy <[EMAIL PROTECTED]>
Cc: Oleg Nesterov <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 arch/i386/kernel/cpuid.c |   32 +++-
 1 file changed, 19 insertions(+), 13 deletions(-)

Index: linux/arch/i386/kernel/cpuid.c
===
--- linux.orig/arch/i386/kernel/cpuid.c
+++ linux/arch/i386/kernel/cpuid.c
@@ -136,15 +136,18 @@ static const struct file_operations cpui
.open = cpuid_open,
 };
 
-static int __cpuinit cpuid_device_create(int i)
+static int cpuid_device_create(int cpu)
 {
-   int err = 0;
struct device *dev;
 
-   dev = device_create(cpuid_class, NULL, MKDEV(CPUID_MAJOR, i), 
"cpu%d",i);
-   if (IS_ERR(dev))
-   err = PTR_ERR(dev);
-   return err;
+   dev = device_create(cpuid_class, NULL, MKDEV(CPUID_MAJOR, cpu),
+   "cpu%d", cpu);
+   return IS_ERR(dev) ? PTR_ERR(dev) : 0;
+}
+
+static void cpuid_device_destroy(int cpu)
+{
+   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
 }
 
 static int __cpuinit cpuid_class_cpu_callback(struct notifier_block *nfb,
@@ -152,18 +155,21 @@ static int __cpuinit cpuid_class_cpu_cal
  void *hcpu)
 {
unsigned int cpu = (unsigned long)hcpu;
+   int err = 0;
 
switch (action) {
-   case CPU_ONLINE:
-   case CPU_ONLINE_FROZEN:
-   cpuid_device_create(cpu);
+   case CPU_UP_PREPARE:
+   case CPU_UP_PREPARE_FROZEN:
+   err = cpuid_device_create(cpu);
break;
+   case CPU_UP_CANCELED:
+   case CPU_UP_CANCELED_FROZEN:
case CPU_DEAD:
case CPU_DEAD_FROZEN:
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
+   cpuid_device_destroy(cpu);
break;
}
-   return NOTIFY_OK;
+   return err ? NOTIFY_BAD : NOTIFY_OK;
 }
 
 static struct notifier_block __cpuinitdata cpuid_class_cpu_notifier =
@@ -200,7 +206,7 @@ static int __init cpuid_init(void)
 out_class:
i = 0;
for_each_online_cpu(i) {
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, i));
+   cpuid_device_destroy(i);
}
class_destroy(cpuid_class);
 out_chrdev:
@@ -214,7 +220,7 @@ static void __exit cpuid_exit(void)
int cpu = 0;
 
for_each_online_cpu(cpu)
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
+   cpuid_device_destroy(cpu);
class_destroy(cpuid_class);
unregister_chrdev(CPUID_MAJOR, "cpu/cpuid");
unregister_hotcpu_notifier(_class_cpu_notifier);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] [35/50] i386: Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

2007-09-21 Thread Andi Kleen

From: Akinobu Mita [EMAIL PROTECTED]

Do cpuid_device_create() in CPU_UP_PREPARE instead of CPU_ONLINE.

Cc: H. Peter Anvin [EMAIL PROTECTED]
Signed-off-by: Akinobu Mita [EMAIL PROTECTED]
Signed-off-by: Andi Kleen [EMAIL PROTECTED]
Cc: Gautham R Shenoy [EMAIL PROTECTED]
Cc: Oleg Nesterov [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 arch/i386/kernel/cpuid.c |   32 +++-
 1 file changed, 19 insertions(+), 13 deletions(-)

Index: linux/arch/i386/kernel/cpuid.c
===
--- linux.orig/arch/i386/kernel/cpuid.c
+++ linux/arch/i386/kernel/cpuid.c
@@ -136,15 +136,18 @@ static const struct file_operations cpui
.open = cpuid_open,
 };
 
-static int __cpuinit cpuid_device_create(int i)
+static int cpuid_device_create(int cpu)
 {
-   int err = 0;
struct device *dev;
 
-   dev = device_create(cpuid_class, NULL, MKDEV(CPUID_MAJOR, i), 
cpu%d,i);
-   if (IS_ERR(dev))
-   err = PTR_ERR(dev);
-   return err;
+   dev = device_create(cpuid_class, NULL, MKDEV(CPUID_MAJOR, cpu),
+   cpu%d, cpu);
+   return IS_ERR(dev) ? PTR_ERR(dev) : 0;
+}
+
+static void cpuid_device_destroy(int cpu)
+{
+   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
 }
 
 static int __cpuinit cpuid_class_cpu_callback(struct notifier_block *nfb,
@@ -152,18 +155,21 @@ static int __cpuinit cpuid_class_cpu_cal
  void *hcpu)
 {
unsigned int cpu = (unsigned long)hcpu;
+   int err = 0;
 
switch (action) {
-   case CPU_ONLINE:
-   case CPU_ONLINE_FROZEN:
-   cpuid_device_create(cpu);
+   case CPU_UP_PREPARE:
+   case CPU_UP_PREPARE_FROZEN:
+   err = cpuid_device_create(cpu);
break;
+   case CPU_UP_CANCELED:
+   case CPU_UP_CANCELED_FROZEN:
case CPU_DEAD:
case CPU_DEAD_FROZEN:
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
+   cpuid_device_destroy(cpu);
break;
}
-   return NOTIFY_OK;
+   return err ? NOTIFY_BAD : NOTIFY_OK;
 }
 
 static struct notifier_block __cpuinitdata cpuid_class_cpu_notifier =
@@ -200,7 +206,7 @@ static int __init cpuid_init(void)
 out_class:
i = 0;
for_each_online_cpu(i) {
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, i));
+   cpuid_device_destroy(i);
}
class_destroy(cpuid_class);
 out_chrdev:
@@ -214,7 +220,7 @@ static void __exit cpuid_exit(void)
int cpu = 0;
 
for_each_online_cpu(cpu)
-   device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu));
+   cpuid_device_destroy(cpu);
class_destroy(cpuid_class);
unregister_chrdev(CPUID_MAJOR, cpu/cpuid);
unregister_hotcpu_notifier(cpuid_class_cpu_notifier);
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/