Message ID | 1460041951-22347-9-git-send-email-mhocko@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hello. On 04/07/2016 06:12 PM, Michal Hocko wrote: > From: Michal Hocko <mhocko@suse.com> > > Introduce ___down_write for the fast path and reuse it for __down_write > resp. __down_write_killable each using the respective generic slow path > (rwsem_down_write_failed resp. rwsem_down_write_failed_killable). > > Signed-off-by: Michal Hocko <mhocko@suse.com> > --- > arch/ia64/include/asm/rwsem.h | 22 +++++++++++++++++++--- > 1 file changed, 19 insertions(+), 3 deletions(-) > > diff --git a/arch/ia64/include/asm/rwsem.h b/arch/ia64/include/asm/rwsem.h > index 3027e7516d85..5e78cb40d9df 100644 > --- a/arch/ia64/include/asm/rwsem.h > +++ b/arch/ia64/include/asm/rwsem.h > @@ -49,8 +49,8 @@ __down_read (struct rw_semaphore *sem) > /* > * lock for writing > */ > -static inline void > -__down_write (struct rw_semaphore *sem) > +static inline long > +___down_write (struct rw_semaphore *sem) > { > long old, new; > > @@ -59,10 +59,26 @@ __down_write (struct rw_semaphore *sem) > new = old + RWSEM_ACTIVE_WRITE_BIAS; > } while (cmpxchg_acq(&sem->count, old, new) != old); > > - if (old != 0) > + return old; > +} > + > +static inline void > +__down_write (struct rw_semaphore *sem) > +{ > + if (___down_write(sem)) > rwsem_down_write_failed(sem); > } > > +static inline int > +__down_write_killable (struct rw_semaphore *sem) Looks like you haven't run this patch thru scripts/checkpatch.pl. Hint: space before ( isn't allowed. [...] MNBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu 07-04-16 20:28:16, Sergei Shtylyov wrote: > Hello. > > On 04/07/2016 06:12 PM, Michal Hocko wrote: > > >From: Michal Hocko <mhocko@suse.com> > > > >Introduce ___down_write for the fast path and reuse it for __down_write > >resp. __down_write_killable each using the respective generic slow path > >(rwsem_down_write_failed resp. rwsem_down_write_failed_killable). > > > >Signed-off-by: Michal Hocko <mhocko@suse.com> > >--- > > arch/ia64/include/asm/rwsem.h | 22 +++++++++++++++++++--- > > 1 file changed, 19 insertions(+), 3 deletions(-) > > > >diff --git a/arch/ia64/include/asm/rwsem.h b/arch/ia64/include/asm/rwsem.h > >index 3027e7516d85..5e78cb40d9df 100644 > >--- a/arch/ia64/include/asm/rwsem.h > >+++ b/arch/ia64/include/asm/rwsem.h > >@@ -49,8 +49,8 @@ __down_read (struct rw_semaphore *sem) > > /* > > * lock for writing > > */ > >-static inline void > >-__down_write (struct rw_semaphore *sem) > >+static inline long > >+___down_write (struct rw_semaphore *sem) > > { > > long old, new; > > > >@@ -59,10 +59,26 @@ __down_write (struct rw_semaphore *sem) > > new = old + RWSEM_ACTIVE_WRITE_BIAS; > > } while (cmpxchg_acq(&sem->count, old, new) != old); > > > >- if (old != 0) > >+ return old; > >+} > >+ > >+static inline void > >+__down_write (struct rw_semaphore *sem) > >+{ > >+ if (___down_write(sem)) > > rwsem_down_write_failed(sem); > > } > > > >+static inline int > >+__down_write_killable (struct rw_semaphore *sem) > > Looks like you haven't run this patch thru scripts/checkpatch.pl. Hint: > space before ( isn't allowed. I have just kept the original code styling because I didn't feel like changing the whole file.
diff --git a/arch/ia64/include/asm/rwsem.h b/arch/ia64/include/asm/rwsem.h index 3027e7516d85..5e78cb40d9df 100644 --- a/arch/ia64/include/asm/rwsem.h +++ b/arch/ia64/include/asm/rwsem.h @@ -49,8 +49,8 @@ __down_read (struct rw_semaphore *sem) /* * lock for writing */ -static inline void -__down_write (struct rw_semaphore *sem) +static inline long +___down_write (struct rw_semaphore *sem) { long old, new; @@ -59,10 +59,26 @@ __down_write (struct rw_semaphore *sem) new = old + RWSEM_ACTIVE_WRITE_BIAS; } while (cmpxchg_acq(&sem->count, old, new) != old); - if (old != 0) + return old; +} + +static inline void +__down_write (struct rw_semaphore *sem) +{ + if (___down_write(sem)) rwsem_down_write_failed(sem); } +static inline int +__down_write_killable (struct rw_semaphore *sem) +{ + if (___down_write(sem)) + if (IS_ERR(rwsem_down_write_failed_killable(sem))) + return -EINTR; + + return 0; +} + /* * unlock after reading */