Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-24 Thread Borislav Petkov
On Fri, Nov 23, 2012 at 08:40:24AM -0800, Greg KH wrote:
 No, as there will not be any discarded sections anymore because
 CONFIG_HOTPLUG is always enabled. We will just delete this whole
 #if/#endif section once all users of __devexit_p() are gone from the
 tree.

 Does that help out?

Yes, I missed the fact that there won't be any discarded sections
anymore. Btw, in that case, you'd probably need to remove all those

#ifdef CONFIG_HOTPLUG

...

#endif

stanzas surrounding different places in the kernel (I see 40ish
currenty) now that HOTPLUG is def_bool y and if you haven't done so yet.

Thanks for explaining.

Btw, you can have my

Acked-by: Borislav Petkov b...@alien8.de

for the amd64_edac pieces.

-- 
Regards/Gruss,
Boris.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-24 Thread Greg KH
On Sat, Nov 24, 2012 at 10:14:53AM +0100, Borislav Petkov wrote:
 On Fri, Nov 23, 2012 at 08:40:24AM -0800, Greg KH wrote:
  No, as there will not be any discarded sections anymore because
  CONFIG_HOTPLUG is always enabled. We will just delete this whole
  #if/#endif section once all users of __devexit_p() are gone from the
  tree.
 
  Does that help out?
 
 Yes, I missed the fact that there won't be any discarded sections
 anymore. Btw, in that case, you'd probably need to remove all those
 
 #ifdef CONFIG_HOTPLUG
 
 ...
 
 #endif
 
 stanzas surrounding different places in the kernel (I see 40ish
 currenty) now that HOTPLUG is def_bool y and if you haven't done so yet.

That removal was done as part of this 493 patches long patchset :)

 Thanks for explaining.
 
 Btw, you can have my
 
 Acked-by: Borislav Petkov b...@alien8.de
 
 for the amd64_edac pieces.

Thanks, I will add it there,

greg k-h
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-23 Thread Borislav Petkov
On Thu, Nov 22, 2012 at 10:22:22AM -0800, Greg KH wrote:
 On Thu, Nov 22, 2012 at 02:44:51PM +0100, Borislav Petkov wrote:
  On Mon, Nov 19, 2012 at 01:20:05PM -0500, Bill Pemberton wrote:
   CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
   needed.
  
  Erm, I don't understand. __devexit_p is defined also for modules not
  only for CONFIG_HOTPLUG:
  
  #if defined(MODULE) || defined(CONFIG_HOTPLUG)
  #define __devexit_p(x) x
  #else
  #define __devexit_p(x) NULL
  #endif
  
  AFAICT, we cannot remove it yet no?
 
 If MODULE is defined, it defaults to nothing.  And now that
 CONFIG_HOTPLUG is always set to Y, this always defaults to nothing.

Huh, if MODULE is defined, __devexit_p(x) evaluates to the function name
'x' itself, AFAICT.

So, if MODULE is defined and we have a reference from retained sections
to a discarded section (I'm rereading the comment over __devexit_p in
include/linux/init.h btw) then we'll get linker errors so we'd still
need the ifdef thing, no?

What am I missing?

Thanks.

-- 
Regards/Gruss,
Boris.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-23 Thread Greg KH
On Fri, Nov 23, 2012 at 11:06:35AM +0100, Borislav Petkov wrote:
 On Thu, Nov 22, 2012 at 10:22:22AM -0800, Greg KH wrote:
  On Thu, Nov 22, 2012 at 02:44:51PM +0100, Borislav Petkov wrote:
   On Mon, Nov 19, 2012 at 01:20:05PM -0500, Bill Pemberton wrote:
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.
   
   Erm, I don't understand. __devexit_p is defined also for modules not
   only for CONFIG_HOTPLUG:
   
   #if defined(MODULE) || defined(CONFIG_HOTPLUG)
   #define __devexit_p(x) x
   #else
   #define __devexit_p(x) NULL
   #endif
   
   AFAICT, we cannot remove it yet no?
  
  If MODULE is defined, it defaults to nothing.  And now that
  CONFIG_HOTPLUG is always set to Y, this always defaults to nothing.
 
 Huh, if MODULE is defined, __devexit_p(x) evaluates to the function name
 'x' itself, AFAICT.

Yes, sorry, that is what I was trying to say here, I meant nothing in
that the macro did not do anything, not that it was setting it to NULL.

 So, if MODULE is defined and we have a reference from retained sections
 to a discarded section (I'm rereading the comment over __devexit_p in
 include/linux/init.h btw) then we'll get linker errors so we'd still
 need the ifdef thing, no?

No, as there will not be any discarded sections anymore because
CONFIG_HOTPLUG is always enabled.  We will just delete this whole
#if/#endif section once all users of __devexit_p() are gone from the
tree.

Does that help out?

thanks,

greg k-h
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-22 Thread Borislav Petkov
On Mon, Nov 19, 2012 at 01:20:05PM -0500, Bill Pemberton wrote:
 CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
 needed.

Erm, I don't understand. __devexit_p is defined also for modules not
only for CONFIG_HOTPLUG:

#if defined(MODULE) || defined(CONFIG_HOTPLUG)
#define __devexit_p(x) x
#else
#define __devexit_p(x) NULL
#endif

AFAICT, we cannot remove it yet no?

Thanks.

-- 
Regards/Gruss,
Boris.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH 056/493] edac: remove use of __devexit_p

2012-11-22 Thread Greg KH
On Thu, Nov 22, 2012 at 02:44:51PM +0100, Borislav Petkov wrote:
 On Mon, Nov 19, 2012 at 01:20:05PM -0500, Bill Pemberton wrote:
  CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
  needed.
 
 Erm, I don't understand. __devexit_p is defined also for modules not
 only for CONFIG_HOTPLUG:
 
 #if defined(MODULE) || defined(CONFIG_HOTPLUG)
 #define __devexit_p(x) x
 #else
 #define __devexit_p(x) NULL
 #endif
 
 AFAICT, we cannot remove it yet no?

If MODULE is defined, it defaults to nothing.  And now that
CONFIG_HOTPLUG is always set to Y, this always defaults to nothing.

So it's not set to anything anymore, so it can be removed and then this
whole define chunk can be removed.

thanks,

greg k-h
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[PATCH 056/493] edac: remove use of __devexit_p

2012-11-19 Thread Bill Pemberton
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.

Signed-off-by: Bill Pemberton wf...@virginia.edu
Cc: Doug Thompson dougthomp...@xmission.com 
Cc: Borislav Petkov b...@alien8.de 
Cc: Mark Gross mark.gr...@intel.com 
Cc: Jason Uhlenkott juhle...@akamai.com 
Cc: Mauro Carvalho Chehab mche...@redhat.com 
Cc: Tim Small t...@buttersideup.com 
Cc: Ranganathan Desikan r...@jetztechnologies.com 
Cc: Arvind R. arvin...@gmail.com 
Cc: Egor Martovetsky e...@pasemi.com 
Cc: Olof Johansson o...@lixom.net 
Cc: linux-e...@vger.kernel.org 
Cc: linuxppc-dev@lists.ozlabs.org 
---
 drivers/edac/amd64_edac.c  | 2 +-
 drivers/edac/amd76x_edac.c | 2 +-
 drivers/edac/cell_edac.c   | 2 +-
 drivers/edac/e752x_edac.c  | 2 +-
 drivers/edac/e7xxx_edac.c  | 2 +-
 drivers/edac/i3000_edac.c  | 2 +-
 drivers/edac/i3200_edac.c  | 2 +-
 drivers/edac/i5000_edac.c  | 2 +-
 drivers/edac/i5100_edac.c  | 2 +-
 drivers/edac/i5400_edac.c  | 2 +-
 drivers/edac/i7300_edac.c  | 2 +-
 drivers/edac/i7core_edac.c | 2 +-
 drivers/edac/i82443bxgx_edac.c | 2 +-
 drivers/edac/i82860_edac.c | 2 +-
 drivers/edac/i82875p_edac.c| 2 +-
 drivers/edac/i82975x_edac.c| 2 +-
 drivers/edac/mv64x60_edac.c| 2 +-
 drivers/edac/pasemi_edac.c | 2 +-
 drivers/edac/r82600_edac.c | 2 +-
 drivers/edac/sb_edac.c | 2 +-
 drivers/edac/tile_edac.c   | 2 +-
 drivers/edac/x38_edac.c| 2 +-
 22 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index f74a684..c147e1e 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -2686,7 +2686,7 @@ MODULE_DEVICE_TABLE(pci, amd64_pci_table);
 static struct pci_driver amd64_pci_driver = {
.name   = EDAC_MOD_STR,
.probe  = amd64_probe_one_instance,
-   .remove = __devexit_p(amd64_remove_one_instance),
+   .remove = amd64_remove_one_instance,
.id_table   = amd64_pci_table,
 };
 
diff --git a/drivers/edac/amd76x_edac.c b/drivers/edac/amd76x_edac.c
index 29eeb68..0430c35 100644
--- a/drivers/edac/amd76x_edac.c
+++ b/drivers/edac/amd76x_edac.c
@@ -350,7 +350,7 @@ MODULE_DEVICE_TABLE(pci, amd76x_pci_tbl);
 static struct pci_driver amd76x_driver = {
.name = EDAC_MOD_STR,
.probe = amd76x_init_one,
-   .remove = __devexit_p(amd76x_remove_one),
+   .remove = amd76x_remove_one,
.id_table = amd76x_pci_tbl,
 };
 
diff --git a/drivers/edac/cell_edac.c b/drivers/edac/cell_edac.c
index a1bbd8e..b99bf19 100644
--- a/drivers/edac/cell_edac.c
+++ b/drivers/edac/cell_edac.c
@@ -247,7 +247,7 @@ static struct platform_driver cell_edac_driver = {
.owner  = THIS_MODULE,
},
.probe  = cell_edac_probe,
-   .remove = __devexit_p(cell_edac_remove),
+   .remove = cell_edac_remove,
 };
 
 static int __init cell_edac_init(void)
diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c
index a5ed6b7..697acd5 100644
--- a/drivers/edac/e752x_edac.c
+++ b/drivers/edac/e752x_edac.c
@@ -1445,7 +1445,7 @@ MODULE_DEVICE_TABLE(pci, e752x_pci_tbl);
 static struct pci_driver e752x_driver = {
.name = EDAC_MOD_STR,
.probe = e752x_init_one,
-   .remove = __devexit_p(e752x_remove_one),
+   .remove = e752x_remove_one,
.id_table = e752x_pci_tbl,
 };
 
diff --git a/drivers/edac/e7xxx_edac.c b/drivers/edac/e7xxx_edac.c
index 9ff57f3..2b401ef 100644
--- a/drivers/edac/e7xxx_edac.c
+++ b/drivers/edac/e7xxx_edac.c
@@ -579,7 +579,7 @@ MODULE_DEVICE_TABLE(pci, e7xxx_pci_tbl);
 static struct pci_driver e7xxx_driver = {
.name = EDAC_MOD_STR,
.probe = e7xxx_init_one,
-   .remove = __devexit_p(e7xxx_remove_one),
+   .remove = e7xxx_remove_one,
.id_table = e7xxx_pci_tbl,
 };
 
diff --git a/drivers/edac/i3000_edac.c b/drivers/edac/i3000_edac.c
index d3d19cc..22d43a0 100644
--- a/drivers/edac/i3000_edac.c
+++ b/drivers/edac/i3000_edac.c
@@ -502,7 +502,7 @@ MODULE_DEVICE_TABLE(pci, i3000_pci_tbl);
 static struct pci_driver i3000_driver = {
.name = EDAC_MOD_STR,
.probe = i3000_init_one,
-   .remove = __devexit_p(i3000_remove_one),
+   .remove = i3000_remove_one,
.id_table = i3000_pci_tbl,
 };
 
diff --git a/drivers/edac/i3200_edac.c b/drivers/edac/i3200_edac.c
index b6653a6..532fabb 100644
--- a/drivers/edac/i3200_edac.c
+++ b/drivers/edac/i3200_edac.c
@@ -467,7 +467,7 @@ MODULE_DEVICE_TABLE(pci, i3200_pci_tbl);
 static struct pci_driver i3200_driver = {
.name = EDAC_MOD_STR,
.probe = i3200_init_one,
-   .remove = __devexit_p(i3200_remove_one),
+   .remove = i3200_remove_one,
.id_table = i3200_pci_tbl,
 };
 
diff --git a/drivers/edac/i5000_edac.c b/drivers/edac/i5000_edac.c
index 6a49dd0..782b2880e 100644
--- a/drivers/edac/i5000_edac.c
+++ b/drivers/edac/i5000_edac.c
@@ -1547,7 +1547,7 @@