* [KJ]remove SPIN_LOCK_UNLOCKED
@ 2007-04-10 18:28 ` Milind Arun Choudhary
0 siblings, 0 replies; 22+ messages in thread
From: Milind Arun Choudhary @ 2007-04-10 18:16 UTC (permalink / raw)
To: kernel-janitors; +Cc: kernelnewbies, linux-kernel
"use spin_lock_init instead of SPIN_LOCK_UNLOCKED"
i'm a bit confused with SPIN_LOCK_UNLOCKED removal
I just did the below mentioned change
but then came to know that spin_lock_init is defined as
# define spin_lock_init(lock) \
do { *(lock) = SPIN_LOCK_UNLOCKED; } while (0)
so what difference does it make..
eventually replacing SPIN_LOCK_UNLOCKED with itself
or is it just that this one [SPIN_LOCK_UNLOCKED] also needs
to be replaced with __SPIN_LOCK_UNLOCKED?
after thought with CONFIG_DEBUG_SPINLOCK does make a diff
let me know if this is fine ..
aerdrv.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index db6ad8e..6846fb4 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -157,7 +157,7 @@ static struct aer_rpc* aer_alloc_rpc(struct pcie_device *dev)
* Initialize Root lock access, e_lock, to Root Error Status Reg,
* Root Error ID Reg, and Root error producer/consumer index.
*/
- rpc->e_lock = SPIN_LOCK_UNLOCKED;
+ spin_lock_init(&rpc->e_lock);
rpc->rpd = dev;
INIT_WORK(&rpc->dpc_handler, aer_isr);
--
Milind Arun Choudhary
^ permalink raw reply related [flat|nested] 22+ messages in thread* [KJ] remove SPIN_LOCK_UNLOCKED @ 2007-04-10 18:28 ` Milind Arun Choudhary 0 siblings, 0 replies; 22+ messages in thread From: Milind Arun Choudhary @ 2007-04-10 18:28 UTC (permalink / raw) To: kernel-janitors; +Cc: kernelnewbies, linux-kernel "use spin_lock_init instead of SPIN_LOCK_UNLOCKED" i'm a bit confused with SPIN_LOCK_UNLOCKED removal I just did the below mentioned change but then came to know that spin_lock_init is defined as # define spin_lock_init(lock) \ do { *(lock) = SPIN_LOCK_UNLOCKED; } while (0) so what difference does it make.. eventually replacing SPIN_LOCK_UNLOCKED with itself or is it just that this one [SPIN_LOCK_UNLOCKED] also needs to be replaced with __SPIN_LOCK_UNLOCKED? after thought with CONFIG_DEBUG_SPINLOCK does make a diff let me know if this is fine .. aerdrv.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c index db6ad8e..6846fb4 100644 --- a/drivers/pci/pcie/aer/aerdrv.c +++ b/drivers/pci/pcie/aer/aerdrv.c @@ -157,7 +157,7 @@ static struct aer_rpc* aer_alloc_rpc(struct pcie_device *dev) * Initialize Root lock access, e_lock, to Root Error Status Reg, * Root Error ID Reg, and Root error producer/consumer index. */ - rpc->e_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&rpc->e_lock); rpc->rpd = dev; INIT_WORK(&rpc->dpc_handler, aer_isr); -- Milind Arun Choudhary _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 18:28 ` [KJ] remove SPIN_LOCK_UNLOCKED Milind Arun Choudhary @ 2007-04-10 20:50 ` Jan Engelhardt -1 siblings, 0 replies; 22+ messages in thread From: Jan Engelhardt @ 2007-04-10 20:50 UTC (permalink / raw) To: Milind Arun Choudhary; +Cc: kernel-janitors, kernelnewbies, linux-kernel On Apr 10 2007 23:46, Milind Arun Choudhary wrote: >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for variables outside functions: static spinlock_t foobar = SPIN_LOCK_UNLOCKED; >let me know if this is fine .. not for me to comment :) > aerdrv.c | 2 +- > 1 files changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c >index db6ad8e..6846fb4 100644 >--- a/drivers/pci/pcie/aer/aerdrv.c >+++ b/drivers/pci/pcie/aer/aerdrv.c >@@ -157,7 +157,7 @@ static struct aer_rpc* aer_alloc_rpc(struct pcie_device *dev) > * Initialize Root lock access, e_lock, to Root Error Status Reg, > * Root Error ID Reg, and Root error producer/consumer index. > */ >- rpc->e_lock = SPIN_LOCK_UNLOCKED; >+ spin_lock_init(&rpc->e_lock); > > rpc->rpd = dev; > INIT_WORK(&rpc->dpc_handler, aer_isr); > > >-- >Milind Arun Choudhary >- >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/ > Jan -- _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 20:50 ` Jan Engelhardt 0 siblings, 0 replies; 22+ messages in thread From: Jan Engelhardt @ 2007-04-10 20:50 UTC (permalink / raw) To: Milind Arun Choudhary; +Cc: kernel-janitors, kernelnewbies, linux-kernel On Apr 10 2007 23:46, Milind Arun Choudhary wrote: >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for variables outside functions: static spinlock_t foobar = SPIN_LOCK_UNLOCKED; >let me know if this is fine .. not for me to comment :) > aerdrv.c | 2 +- > 1 files changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c >index db6ad8e..6846fb4 100644 >--- a/drivers/pci/pcie/aer/aerdrv.c >+++ b/drivers/pci/pcie/aer/aerdrv.c >@@ -157,7 +157,7 @@ static struct aer_rpc* aer_alloc_rpc(struct pcie_device *dev) > * Initialize Root lock access, e_lock, to Root Error Status Reg, > * Root Error ID Reg, and Root error producer/consumer index. > */ >- rpc->e_lock = SPIN_LOCK_UNLOCKED; >+ spin_lock_init(&rpc->e_lock); > > rpc->rpd = dev; > INIT_WORK(&rpc->dpc_handler, aer_isr); > > >-- >Milind Arun Choudhary >- >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/ > Jan -- ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 20:50 ` [KJ]remove SPIN_LOCK_UNLOCKED Jan Engelhardt @ 2007-04-10 21:13 ` Roland Dreier -1 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:13 UTC (permalink / raw) To: Jan Engelhardt Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for > variables outside functions: > > static spinlock_t foobar = SPIN_LOCK_UNLOCKED; DEFINE_SPINLOCK() is provided to define variables that way. - R. _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:13 ` Roland Dreier 0 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:13 UTC (permalink / raw) To: Jan Engelhardt Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for > variables outside functions: > > static spinlock_t foobar = SPIN_LOCK_UNLOCKED; DEFINE_SPINLOCK() is provided to define variables that way. - R. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 20:50 ` [KJ]remove SPIN_LOCK_UNLOCKED Jan Engelhardt @ 2007-04-10 21:25 ` Robert P. J. Day -1 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-10 21:25 UTC (permalink / raw) To: Jan Engelhardt Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Tue, 10 Apr 2007, Jan Engelhardt wrote: > > On Apr 10 2007 23:46, Milind Arun Choudhary wrote: > > >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" > > Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for > variables outside functions: > > static spinlock_t foobar = SPIN_LOCK_UNLOCKED; but that's where you would use the more explicit __RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro SPIN_LOCK_UNLOCKED in its entirety. rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:25 ` Robert P. J. Day 0 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-10 21:25 UTC (permalink / raw) To: Jan Engelhardt Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Tue, 10 Apr 2007, Jan Engelhardt wrote: > > On Apr 10 2007 23:46, Milind Arun Choudhary wrote: > > >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" > > Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for > variables outside functions: > > static spinlock_t foobar = SPIN_LOCK_UNLOCKED; but that's where you would use the more explicit __RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro SPIN_LOCK_UNLOCKED in its entirety. rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 21:25 ` [KJ]remove SPIN_LOCK_UNLOCKED Robert P. J. Day @ 2007-04-10 21:28 ` Jan Engelhardt -1 siblings, 0 replies; 22+ messages in thread From: Jan Engelhardt @ 2007-04-10 21:28 UTC (permalink / raw) To: Robert P. J. Day Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Apr 10 2007 17:25, Robert P. J. Day wrote: >On Tue, 10 Apr 2007, Jan Engelhardt wrote: >> On Apr 10 2007 23:46, Milind Arun Choudhary wrote: >> >> >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" >> >> Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for >> variables outside functions: >> >> static spinlock_t foobar = SPIN_LOCK_UNLOCKED; > >but that's where you would use the more explicit >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro >SPIN_LOCK_UNLOCKED in its entirety. I don't remember LDD speaking about __RAW_*. (And other than not having looked into the code to date, I don't know the difference.) Jan -- _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:28 ` Jan Engelhardt 0 siblings, 0 replies; 22+ messages in thread From: Jan Engelhardt @ 2007-04-10 21:28 UTC (permalink / raw) To: Robert P. J. Day Cc: Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Apr 10 2007 17:25, Robert P. J. Day wrote: >On Tue, 10 Apr 2007, Jan Engelhardt wrote: >> On Apr 10 2007 23:46, Milind Arun Choudhary wrote: >> >> >"use spin_lock_init instead of SPIN_LOCK_UNLOCKED" >> >> Fact is, we cannot remove SPIN_LOCK_UNLOCKED. It's needed for >> variables outside functions: >> >> static spinlock_t foobar = SPIN_LOCK_UNLOCKED; > >but that's where you would use the more explicit >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro >SPIN_LOCK_UNLOCKED in its entirety. I don't remember LDD speaking about __RAW_*. (And other than not having looked into the code to date, I don't know the difference.) Jan -- ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 21:28 ` [KJ]remove SPIN_LOCK_UNLOCKED Jan Engelhardt @ 2007-04-10 21:42 ` Roland Dreier -1 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:42 UTC (permalink / raw) To: Jan Engelhardt Cc: Robert P. J. Day, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > >but that's where you would use the more explicit > >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro > >SPIN_LOCK_UNLOCKED in its entirety. > > I don't remember LDD speaking about __RAW_*. (And other than not > having looked into the code to date, I don't know the difference.) Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's obviously not for generic code to use. The right answer (as I said before) is to use DEFINE_SPINLOCK(). - R. _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:42 ` Roland Dreier 0 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:42 UTC (permalink / raw) To: Jan Engelhardt Cc: Robert P. J. Day, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > >but that's where you would use the more explicit > >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro > >SPIN_LOCK_UNLOCKED in its entirety. > > I don't remember LDD speaking about __RAW_*. (And other than not > having looked into the code to date, I don't know the difference.) Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's obviously not for generic code to use. The right answer (as I said before) is to use DEFINE_SPINLOCK(). - R. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 21:42 ` [KJ]remove SPIN_LOCK_UNLOCKED Roland Dreier @ 2007-04-10 21:45 ` Robert P. J. Day -1 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-10 21:45 UTC (permalink / raw) To: Roland Dreier Cc: Jan Engelhardt, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Tue, 10 Apr 2007, Roland Dreier wrote: > > >but that's where you would use the more explicit > > >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro > > >SPIN_LOCK_UNLOCKED in its entirety. > > > > I don't remember LDD speaking about __RAW_*. (And other than not > > having looked into the code to date, I don't know the difference.) > > Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's > obviously not for generic code to use. The right answer (as I said > before) is to use DEFINE_SPINLOCK(). that works fine if you're defining a single spinlock, but what do you do in cases like this: arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED that is, when you're assigning an array of them? you still need some kind of generic, unnamed spinlock in those circumstances, no? rday -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:45 ` Robert P. J. Day 0 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-10 21:45 UTC (permalink / raw) To: Roland Dreier Cc: Jan Engelhardt, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel On Tue, 10 Apr 2007, Roland Dreier wrote: > > >but that's where you would use the more explicit > > >__RAW_SPIN_LOCK_UNLOCKED, no? AFAIK, you really can remove the macro > > >SPIN_LOCK_UNLOCKED in its entirety. > > > > I don't remember LDD speaking about __RAW_*. (And other than not > > having looked into the code to date, I don't know the difference.) > > Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's > obviously not for generic code to use. The right answer (as I said > before) is to use DEFINE_SPINLOCK(). that works fine if you're defining a single spinlock, but what do you do in cases like this: arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED that is, when you're assigning an array of them? you still need some kind of generic, unnamed spinlock in those circumstances, no? rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 21:45 ` [KJ]remove SPIN_LOCK_UNLOCKED Robert P. J. Day @ 2007-04-10 21:58 ` Roland Dreier -1 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:58 UTC (permalink / raw) To: Robert P. J. Day Cc: Jan Engelhardt, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > > Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's > > obviously not for generic code to use. The right answer (as I said > > before) is to use DEFINE_SPINLOCK(). > > that works fine if you're defining a single spinlock, but what do you > do in cases like this: > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > that is, when you're assigning an array of them? you still need some > kind of generic, unnamed spinlock in those circumstances, no? Wow, I didn't realize there was code doing that. I guess for that handful of cases, you indeed would probably want to convert them to raw_spinlock_t and use __RAW_SPIN_LOCK_UNLOCKED. But in the vast majority of cases, DEFINE_SPINLOCK() is the right think to do. - R. _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ]remove SPIN_LOCK_UNLOCKED @ 2007-04-10 21:58 ` Roland Dreier 0 siblings, 0 replies; 22+ messages in thread From: Roland Dreier @ 2007-04-10 21:58 UTC (permalink / raw) To: Robert P. J. Day Cc: Jan Engelhardt, Milind Arun Choudhary, kernel-janitors, kernelnewbies, linux-kernel > > Don't worry about the __RAW_SPIN_LOCK_UNLOCKED stuff, that's > > obviously not for generic code to use. The right answer (as I said > > before) is to use DEFINE_SPINLOCK(). > > that works fine if you're defining a single spinlock, but what do you > do in cases like this: > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > that is, when you're assigning an array of them? you still need some > kind of generic, unnamed spinlock in those circumstances, no? Wow, I didn't realize there was code doing that. I guess for that handful of cases, you indeed would probably want to convert them to raw_spinlock_t and use __RAW_SPIN_LOCK_UNLOCKED. But in the vast majority of cases, DEFINE_SPINLOCK() is the right think to do. - R. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 21:45 ` [KJ]remove SPIN_LOCK_UNLOCKED Robert P. J. Day @ 2007-04-10 22:08 ` Matthew Wilcox -1 siblings, 0 replies; 22+ messages in thread From: Matthew Wilcox @ 2007-04-10 22:08 UTC (permalink / raw) To: Robert P. J. Day Cc: Roland Dreier, kernelnewbies, kernel-janitors, Jan Engelhardt, linux-kernel On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > that works fine if you're defining a single spinlock, but what do you > do in cases like this: > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > that is, when you're assigning an array of them? you still need some > kind of generic, unnamed spinlock in those circumstances, no? That's a special case for architecture-only code. It's not to be used by drivers. _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED @ 2007-04-10 22:08 ` Matthew Wilcox 0 siblings, 0 replies; 22+ messages in thread From: Matthew Wilcox @ 2007-04-10 22:08 UTC (permalink / raw) To: Robert P. J. Day Cc: Roland Dreier, kernelnewbies, kernel-janitors, Jan Engelhardt, linux-kernel On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > that works fine if you're defining a single spinlock, but what do you > do in cases like this: > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > that is, when you're assigning an array of them? you still need some > kind of generic, unnamed spinlock in those circumstances, no? That's a special case for architecture-only code. It's not to be used by drivers. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 22:08 ` Matthew Wilcox @ 2007-04-11 4:21 ` Milind Arun Choudhary -1 siblings, 0 replies; 22+ messages in thread From: Milind Arun Choudhary @ 2007-04-11 4:09 UTC (permalink / raw) To: Matthew Wilcox Cc: Robert P. J. Day, kernelnewbies, kernel-janitors, Roland Dreier, Jan Engelhardt, linux-kernel On 4/11/07, Matthew Wilcox <matthew@wil.cx> wrote: > On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > > that works fine if you're defining a single spinlock, but what do you > > do in cases like this: > > > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > > > that is, when you're assigning an array of them? you still need some > > kind of generic, unnamed spinlock in those circumstances, no? > > That's a special case for architecture-only code. It's not to be used > by drivers. as per my understanding, [which i should have keyed in earlier] different places where SPIN_LOCK_UNLOCKED currently appears are 1. static spinlock_t foobar = SPIN_LOCK_UNLOCKED; needs to be replaced bye DEFINE_SPINLOCK e.g linux-core/drm_memory_debug.h -static spinlock_t drm_mem_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(drm_mem_lock); there are very few occurrences left in the tree i see 2. allocating a data structure dynamically & initializing the spinlock embedded within use spin_lock_init() e.g linux-core/via_dmablit.c - blitq->blit_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&blitq->blit_lock); 3. static initialization of structure members struct foo bar ={ . . . .lock = SPIN_LOCK_UNLOCKED, . } use struct foo bar ={ . . . .lock = __SPIN_LOCK_UNLOCKED(bar.lock), . } e.g arch/i386/kernel/traps.c - .lock = SPIN_LOCK_UNLOCKED, + .lock = __SPIN_LOCK_UNLOCKED(die.lock), plenty of these are still there may be some patches queued 4. arrays of spinlocks e.g arch/cris/arch-v32/kernel/smp.c -spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED}; +raw_spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = __RAW_SPIN_LOCK_UNLOCKED}; my question is still there in the original post about spin_lock_init() CMIIW Refer: http://lkml.org/lkml/2005/6/20/47 http://lkml.org/lkml/2007/1/16/90 http://lists.openwall.net/linux-kernel/2007/02/01/258 -- Milind Arun Choudhary ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED @ 2007-04-11 4:21 ` Milind Arun Choudhary 0 siblings, 0 replies; 22+ messages in thread From: Milind Arun Choudhary @ 2007-04-11 4:21 UTC (permalink / raw) To: Matthew Wilcox Cc: Robert P. J. Day, kernelnewbies, kernel-janitors, Roland Dreier, Jan Engelhardt, linux-kernel On 4/11/07, Matthew Wilcox <matthew@wil.cx> wrote: > On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > > that works fine if you're defining a single spinlock, but what do you > > do in cases like this: > > > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > > > that is, when you're assigning an array of them? you still need some > > kind of generic, unnamed spinlock in those circumstances, no? > > That's a special case for architecture-only code. It's not to be used > by drivers. as per my understanding, [which i should have keyed in earlier] different places where SPIN_LOCK_UNLOCKED currently appears are 1. static spinlock_t foobar = SPIN_LOCK_UNLOCKED; needs to be replaced bye DEFINE_SPINLOCK e.g linux-core/drm_memory_debug.h -static spinlock_t drm_mem_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(drm_mem_lock); there are very few occurrences left in the tree i see 2. allocating a data structure dynamically & initializing the spinlock embedded within use spin_lock_init() e.g linux-core/via_dmablit.c - blitq->blit_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&blitq->blit_lock); 3. static initialization of structure members struct foo bar ={ . . . .lock = SPIN_LOCK_UNLOCKED, . } use struct foo bar ={ . . . .lock = __SPIN_LOCK_UNLOCKED(bar.lock), . } e.g arch/i386/kernel/traps.c - .lock = SPIN_LOCK_UNLOCKED, + .lock = __SPIN_LOCK_UNLOCKED(die.lock), plenty of these are still there may be some patches queued 4. arrays of spinlocks e.g arch/cris/arch-v32/kernel/smp.c -spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] SPIN_LOCK_UNLOCKED}; +raw_spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] __RAW_SPIN_LOCK_UNLOCKED}; my question is still there in the original post about spin_lock_init() CMIIW Refer: http://lkml.org/lkml/2005/6/20/47 http://lkml.org/lkml/2007/1/16/90 http://lists.openwall.net/linux-kernel/2007/02/01/258 -- Milind Arun Choudhary _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED 2007-04-10 22:08 ` Matthew Wilcox @ 2007-04-11 5:47 ` Robert P. J. Day -1 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-11 5:47 UTC (permalink / raw) To: Matthew Wilcox Cc: Roland Dreier, kernelnewbies, kernel-janitors, Jan Engelhardt, linux-kernel On Tue, 10 Apr 2007, Matthew Wilcox wrote: > On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > > that works fine if you're defining a single spinlock, but what do you > > do in cases like this: > > > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > > > that is, when you're assigning an array of them? you still need > > some kind of generic, unnamed spinlock in those circumstances, no? > > That's a special case for architecture-only code. It's not to be > used by drivers. be that as it may, it still means you need to take it into account whenever someone says they want to entirely remove the SPIN_LOCK_UNLOCKED macro from the source tree, as suggested in Documentation/spinlocks.txt. if you do that removal, you can always replace SPIN_LOCK_UNLOCKED with its current definition of __SPIN_LOCK_UNLOCKED(old_style_spin_init), or what have you. but you would obviously have to replace it with *something* that represents an unnamed spinlock if SPIN_LOCK_UNLOCKED goes away. rday p.s. just FYI: $ grep -r "\.\.\..*SPIN_LOCK_UNLOCKED" * arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED arch/cris/arch-v32/kernel/smp.c:spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED}; arch/parisc/lib/bitops.c: [0 ... (ATOMIC_HASH_SIZE-1)] = __RAW_SPIN_LOCK_UNLOCKED arch/mips/kernel/gdb-stub.c: [0 ... NR_CPUS-1] = __RAW_SPIN_LOCK_UNLOCKED, arch/powerpc/platforms/iseries/htab.c: { [0 ... 63] = SPIN_LOCK_UNLOCKED}; so, as matthew says, it's clearly not for drivers. -- ==================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ==================================== _______________________________________________ Kernel-janitors mailing list Kernel-janitors@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/kernel-janitors ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [KJ] remove SPIN_LOCK_UNLOCKED @ 2007-04-11 5:47 ` Robert P. J. Day 0 siblings, 0 replies; 22+ messages in thread From: Robert P. J. Day @ 2007-04-11 5:47 UTC (permalink / raw) To: Matthew Wilcox Cc: Roland Dreier, kernelnewbies, kernel-janitors, Jan Engelhardt, linux-kernel On Tue, 10 Apr 2007, Matthew Wilcox wrote: > On Tue, Apr 10, 2007 at 05:45:07PM -0400, Robert P. J. Day wrote: > > that works fine if you're defining a single spinlock, but what do you > > do in cases like this: > > > > arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED > > > > that is, when you're assigning an array of them? you still need > > some kind of generic, unnamed spinlock in those circumstances, no? > > That's a special case for architecture-only code. It's not to be > used by drivers. be that as it may, it still means you need to take it into account whenever someone says they want to entirely remove the SPIN_LOCK_UNLOCKED macro from the source tree, as suggested in Documentation/spinlocks.txt. if you do that removal, you can always replace SPIN_LOCK_UNLOCKED with its current definition of __SPIN_LOCK_UNLOCKED(old_style_spin_init), or what have you. but you would obviously have to replace it with *something* that represents an unnamed spinlock if SPIN_LOCK_UNLOCKED goes away. rday p.s. just FYI: $ grep -r "\.\.\..*SPIN_LOCK_UNLOCKED" * arch/sparc/lib/atomic32.c: [0 ... (ATOMIC_HASH_SIZE-1)] = SPIN_LOCK_UNLOCKED arch/cris/arch-v32/kernel/smp.c:spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED}; arch/parisc/lib/bitops.c: [0 ... (ATOMIC_HASH_SIZE-1)] = __RAW_SPIN_LOCK_UNLOCKED arch/mips/kernel/gdb-stub.c: [0 ... NR_CPUS-1] = __RAW_SPIN_LOCK_UNLOCKED, arch/powerpc/platforms/iseries/htab.c: { [0 ... 63] = SPIN_LOCK_UNLOCKED}; so, as matthew says, it's clearly not for drivers. -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry Waterloo, Ontario, CANADA http://fsdev.net/wiki/index.php?title=Main_Page ======================================================================== ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2007-04-11 5:48 UTC | newest] Thread overview: 22+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-04-10 18:16 [KJ]remove SPIN_LOCK_UNLOCKED Milind Arun Choudhary 2007-04-10 18:28 ` [KJ] remove SPIN_LOCK_UNLOCKED Milind Arun Choudhary 2007-04-10 20:50 ` Jan Engelhardt 2007-04-10 20:50 ` [KJ]remove SPIN_LOCK_UNLOCKED Jan Engelhardt 2007-04-10 21:13 ` [KJ] remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 21:13 ` [KJ]remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 21:25 ` [KJ] remove SPIN_LOCK_UNLOCKED Robert P. J. Day 2007-04-10 21:25 ` [KJ]remove SPIN_LOCK_UNLOCKED Robert P. J. Day 2007-04-10 21:28 ` [KJ] remove SPIN_LOCK_UNLOCKED Jan Engelhardt 2007-04-10 21:28 ` [KJ]remove SPIN_LOCK_UNLOCKED Jan Engelhardt 2007-04-10 21:42 ` [KJ] remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 21:42 ` [KJ]remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 21:45 ` [KJ] remove SPIN_LOCK_UNLOCKED Robert P. J. Day 2007-04-10 21:45 ` [KJ]remove SPIN_LOCK_UNLOCKED Robert P. J. Day 2007-04-10 21:58 ` [KJ] remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 21:58 ` [KJ]remove SPIN_LOCK_UNLOCKED Roland Dreier 2007-04-10 22:08 ` [KJ] remove SPIN_LOCK_UNLOCKED Matthew Wilcox 2007-04-10 22:08 ` Matthew Wilcox 2007-04-11 4:09 ` Milind Arun Choudhary 2007-04-11 4:21 ` Milind Arun Choudhary 2007-04-11 5:47 ` Robert P. J. Day 2007-04-11 5:47 ` Robert P. J. Day
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.