Re: [PATCH] powerpc: Export __spin_yield

2015-03-30 Thread Geert Uytterhoeven
Hi Ben,

On Fri, Mar 20, 2015 at 12:08 AM, Paul Mackerras pau...@samba.org wrote:
 On Wed, Feb 25, 2015 at 05:23:53PM -0600, Suresh E. Warrier wrote:
 Export __spin_yield so that the arch_spin_unlock() function can
 be invoked from a module. This will be required for modules where
 we want to take a lock that is also is acquired in hypervisor
 real mode. Because we want to avoid running any lockdep code
 (which may not be safe in real mode), this lock needs to be
 an arch_spinlock_t instead of a normal spinlock.

 Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com

 Acked-by: Paul Mackerras pau...@samba.org

Something went wrong when applying this, as it ended up as:

commit 1f8c82ab1b0bc7e24601c0fca411fd27b9c883ef
Author: Geert Uytterhoeven geert+rene...@glider.be
Date:   Wed Mar 4 12:56:20 2015 +0100

cpufreq/ppc: Add missing #include asm/smp.h

If CONFIG_SMP=n, linux/smp.h does not include asm/smp.h, causing:

drivers/cpufreq/ppc-corenet-cpufreq.c: In function 'corenet_cpufreq_cpu_init
drivers/cpufreq/ppc-corenet-cpufreq.c:173:3: error: implicit declaration of
X-Patchwork-Id: 443703
Message-Id: 54ee5989.7010...@linux.vnet.ibm.com
To: linuxppc-...@ozlabs.org
Date: Wed, 25 Feb 2015 17:23:53 -0600

Export __spin_yield so that the arch_spin_unlock() function can
be invoked from a module. This will be required for modules where
we want to take a lock that is also is acquired in hypervisor
real mode. Because we want to avoid running any lockdep code
(which may not be safe in real mode), this lock needs to be
an arch_spinlock_t instead of a normal spinlock.

Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com
Acked-by: Paul Mackerras pau...@samba.org
Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say programmer or something like that.
-- Linus Torvalds
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] powerpc: Export __spin_yield

2015-03-30 Thread Benjamin Herrenschmidt
On Mon, 2015-03-30 at 12:17 +0200, Geert Uytterhoeven wrote:
 Hi Ben,
 
 On Fri, Mar 20, 2015 at 12:08 AM, Paul Mackerras pau...@samba.org wrote:
  On Wed, Feb 25, 2015 at 05:23:53PM -0600, Suresh E. Warrier wrote:
  Export __spin_yield so that the arch_spin_unlock() function can
  be invoked from a module. This will be required for modules where
  we want to take a lock that is also is acquired in hypervisor
  real mode. Because we want to avoid running any lockdep code
  (which may not be safe in real mode), this lock needs to be
  an arch_spinlock_t instead of a normal spinlock.
 
  Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com
 
  Acked-by: Paul Mackerras pau...@samba.org
 
 Something went wrong when applying this, as it ended up as:

Ugh, weird. I must have fucked up something when rebasing. I don't
want to rebase that branch now that it's out, I know of at least one
series based on it. We'll live with it.

 commit 1f8c82ab1b0bc7e24601c0fca411fd27b9c883ef
 Author: Geert Uytterhoeven geert+rene...@glider.be
 Date:   Wed Mar 4 12:56:20 2015 +0100
 
 cpufreq/ppc: Add missing #include asm/smp.h
 
 If CONFIG_SMP=n, linux/smp.h does not include asm/smp.h, causing:
 
 drivers/cpufreq/ppc-corenet-cpufreq.c: In function 
 'corenet_cpufreq_cpu_init
 drivers/cpufreq/ppc-corenet-cpufreq.c:173:3: error: implicit declaration 
 of
 X-Patchwork-Id: 443703
 Message-Id: 54ee5989.7010...@linux.vnet.ibm.com
 To: linuxppc-...@ozlabs.org
 Date: Wed, 25 Feb 2015 17:23:53 -0600
 
 Export __spin_yield so that the arch_spin_unlock() function can
 be invoked from a module. This will be required for modules where
 we want to take a lock that is also is acquired in hypervisor
 real mode. Because we want to avoid running any lockdep code
 (which may not be safe in real mode), this lock needs to be
 an arch_spinlock_t instead of a normal spinlock.
 
 Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com
 Acked-by: Paul Mackerras pau...@samba.org
 Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org
 
 Gr{oetje,eeting}s,
 
 Geert
 
 --
 Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- 
 ge...@linux-m68k.org
 
 In personal conversations with technical people, I call myself a hacker. But
 when I'm talking to journalists I just say programmer or something like 
 that.
 -- Linus Torvalds


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

Re: [PATCH] powerpc: Export __spin_yield

2015-03-19 Thread Paul Mackerras
On Wed, Feb 25, 2015 at 05:23:53PM -0600, Suresh E. Warrier wrote:
 Export __spin_yield so that the arch_spin_unlock() function can
 be invoked from a module. This will be required for modules where
 we want to take a lock that is also is acquired in hypervisor
 real mode. Because we want to avoid running any lockdep code
 (which may not be safe in real mode), this lock needs to be 
 an arch_spinlock_t instead of a normal spinlock.
 
 Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com

Acked-by: Paul Mackerras pau...@samba.org
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] powerpc: Export __spin_yield

2015-02-24 Thread Benjamin Herrenschmidt
On Tue, 2015-02-24 at 10:37 -0600, Suresh E. Warrier wrote:
 On 02/23/2015 09:38 PM, Benjamin Herrenschmidt wrote:
  On Mon, 2015-02-23 at 18:10 -0600, Suresh E. Warrier wrote:
  Export __spin_yield so that the arch_spin_unlock() function
  can be invoked from a module.
  
  Make it EXPORT_SYMBOL_GPL. Also explain why a module might need it
  
 
 Sure, I will change that to EXPORT_SYMBOL_GPL. Just curious, though, 
 there is another symbol arch_spin_unlock_wait that is exported from
 the file without the _GPL prefix. Any idea why?

Nope. Not sure how come we did that.

 I have mentioned that this needs to be exported to call the 
 arch_spin_unlock() function from a module. What additional information
 do you think will be useful here ? Are you looking at something
 that explains why a module might need to call arch_spin_unlock()?

What kind of module might need it...

Cheers,
Ben.


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

Re: [PATCH] powerpc: Export __spin_yield

2015-02-24 Thread Suresh E. Warrier
On 02/23/2015 09:38 PM, Benjamin Herrenschmidt wrote:
 On Mon, 2015-02-23 at 18:10 -0600, Suresh E. Warrier wrote:
 Export __spin_yield so that the arch_spin_unlock() function
 can be invoked from a module.
 
 Make it EXPORT_SYMBOL_GPL. Also explain why a module might need it
 

Sure, I will change that to EXPORT_SYMBOL_GPL. Just curious, though, 
there is another symbol arch_spin_unlock_wait that is exported from
the file without the _GPL prefix. Any idea why?

I have mentioned that this needs to be exported to call the 
arch_spin_unlock() function from a module. What additional information
do you think will be useful here ? Are you looking at something
that explains why a module might need to call arch_spin_unlock()?

Thanks.
-suresh

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

Re: [PATCH] powerpc: Export __spin_yield

2015-02-23 Thread Benjamin Herrenschmidt
On Mon, 2015-02-23 at 18:10 -0600, Suresh E. Warrier wrote:
 Export __spin_yield so that the arch_spin_unlock() function
 can be invoked from a module.

Make it EXPORT_SYMBOL_GPL. Also explain why a module might need it

 Signed-off-by: Suresh Warrier warr...@linux.vnet.ibm.com
 ---
  arch/powerpc/lib/locks.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/arch/powerpc/lib/locks.c b/arch/powerpc/lib/locks.c
 index bb7cfec..d100de8 100644
 --- a/arch/powerpc/lib/locks.c
 +++ b/arch/powerpc/lib/locks.c
 @@ -41,6 +41,7 @@ void __spin_yield(arch_spinlock_t *lock)
   plpar_hcall_norets(H_CONFER,
   get_hard_smp_processor_id(holder_cpu), yield_count);
  }
 +EXPORT_SYMBOL(__spin_yield);
 
  /*
   * Waiting for a read lock or a write lock on a rwlock...


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