Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Mon, 2 Jun 2014, Fabian Frederick wrote: > On Mon, 2 Jun 2014 16:41:48 +0200 (CEST) > Sebastian Ott wrote: > > > Hello Fabian, > > > > On Tue, 20 May 2014, Fabian Frederick wrote: > > > > > > This is untested. > > > > > > Cc: Sebastian Ott > > > Cc: Andrew Morton > > > Signed-off-by: Fabian Frederick > > > --- > > > drivers/s390/cio/qdio_main.c | 5 ++--- > > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c > > > index 77466c4..8bf9ec1 100644 > > > --- a/drivers/s390/cio/qdio_main.c > > > +++ b/drivers/s390/cio/qdio_main.c > > > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q > > > *q) > > > > > > static inline void account_sbals(struct qdio_q *q, int count) > > > { > > > - int pos = 0; > > > + int pos; > > > > > > q->q_stats.nr_sbal_total += count; > > > if (count == QDIO_MAX_BUFFERS_MASK) { > > > q->q_stats.nr_sbals[7]++; > > > return; > > > } > > > - while (count >>= 1) > > > - pos++; > > > + pos = ilog2(count); > > > q->q_stats.nr_sbals[pos]++; > > > } > > > > > > -- > > > 1.8.4.5 > > > > > > > > > > Could you please resend the patch with a better description plus > > the change Joe suggested. > > > > Thanks, > > Sebastian > > Hello Sebastian, >Conclusion of that patch/thread was that callers guarantee count to be > 0 Correct. > Joe suggested to have unsigned count. Is it what you're talking about ? Yes. Regards, Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Mon, 2 Jun 2014, Fabian Frederick wrote: On Mon, 2 Jun 2014 16:41:48 +0200 (CEST) Sebastian Ott seb...@linux.vnet.ibm.com wrote: Hello Fabian, On Tue, 20 May 2014, Fabian Frederick wrote: This is untested. Cc: Sebastian Ott seb...@linux.vnet.ibm.com Cc: Andrew Morton a...@linux-foundation.org Signed-off-by: Fabian Frederick f...@skynet.be --- drivers/s390/cio/qdio_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 77466c4..8bf9ec1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); q-q_stats.nr_sbals[pos]++; } -- 1.8.4.5 Could you please resend the patch with a better description plus the change Joe suggested. Thanks, Sebastian Hello Sebastian, Conclusion of that patch/thread was that callers guarantee count to be 0 Correct. Joe suggested to have unsigned count. Is it what you're talking about ? Yes. Regards, Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Mon, 2 Jun 2014 16:41:48 +0200 (CEST) Sebastian Ott wrote: > Hello Fabian, > > On Tue, 20 May 2014, Fabian Frederick wrote: > > > > This is untested. > > > > Cc: Sebastian Ott > > Cc: Andrew Morton > > Signed-off-by: Fabian Frederick > > --- > > drivers/s390/cio/qdio_main.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c > > index 77466c4..8bf9ec1 100644 > > --- a/drivers/s390/cio/qdio_main.c > > +++ b/drivers/s390/cio/qdio_main.c > > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) > > > > static inline void account_sbals(struct qdio_q *q, int count) > > { > > - int pos = 0; > > + int pos; > > > > q->q_stats.nr_sbal_total += count; > > if (count == QDIO_MAX_BUFFERS_MASK) { > > q->q_stats.nr_sbals[7]++; > > return; > > } > > - while (count >>= 1) > > - pos++; > > + pos = ilog2(count); > > q->q_stats.nr_sbals[pos]++; > > } > > > > -- > > 1.8.4.5 > > > > > > Could you please resend the patch with a better description plus > the change Joe suggested. > > Thanks, > Sebastian Hello Sebastian, Conclusion of that patch/thread was that callers guarantee count to be > 0 Joe suggested to have unsigned count. Is it what you're talking about ? Regards, Fabian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
Hello Fabian, On Tue, 20 May 2014, Fabian Frederick wrote: > > This is untested. > > Cc: Sebastian Ott > Cc: Andrew Morton > Signed-off-by: Fabian Frederick > --- > drivers/s390/cio/qdio_main.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c > index 77466c4..8bf9ec1 100644 > --- a/drivers/s390/cio/qdio_main.c > +++ b/drivers/s390/cio/qdio_main.c > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) > > static inline void account_sbals(struct qdio_q *q, int count) > { > - int pos = 0; > + int pos; > > q->q_stats.nr_sbal_total += count; > if (count == QDIO_MAX_BUFFERS_MASK) { > q->q_stats.nr_sbals[7]++; > return; > } > - while (count >>= 1) > - pos++; > + pos = ilog2(count); > q->q_stats.nr_sbals[pos]++; > } > > -- > 1.8.4.5 > > Could you please resend the patch with a better description plus the change Joe suggested. Thanks, Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
Hello Fabian, On Tue, 20 May 2014, Fabian Frederick wrote: This is untested. Cc: Sebastian Ott seb...@linux.vnet.ibm.com Cc: Andrew Morton a...@linux-foundation.org Signed-off-by: Fabian Frederick f...@skynet.be --- drivers/s390/cio/qdio_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 77466c4..8bf9ec1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); q-q_stats.nr_sbals[pos]++; } -- 1.8.4.5 Could you please resend the patch with a better description plus the change Joe suggested. Thanks, Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Mon, 2 Jun 2014 16:41:48 +0200 (CEST) Sebastian Ott seb...@linux.vnet.ibm.com wrote: Hello Fabian, On Tue, 20 May 2014, Fabian Frederick wrote: This is untested. Cc: Sebastian Ott seb...@linux.vnet.ibm.com Cc: Andrew Morton a...@linux-foundation.org Signed-off-by: Fabian Frederick f...@skynet.be --- drivers/s390/cio/qdio_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 77466c4..8bf9ec1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); q-q_stats.nr_sbals[pos]++; } -- 1.8.4.5 Could you please resend the patch with a better description plus the change Joe suggested. Thanks, Sebastian Hello Sebastian, Conclusion of that patch/thread was that callers guarantee count to be 0 Joe suggested to have unsigned count. Is it what you're talking about ? Regards, Fabian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
yes, the callers guarantee that count > 0 here. Regards, Ursula Braun On Thu, 2014-05-22 at 12:14 +0200, Ursula Braun1 wrote: > From:Sebastian Ott > To:Joe Perches , Ursula > Braun1/Germany/IBM@IBMDE, > Cc:Fabian Frederick , linux-kernel > , akpm > Date:21/05/2014 14:32 > Subject: Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace > shift loop by ilog2 > > __ > > > > On Tue, 20 May 2014, Joe Perches wrote: > > On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: > > > This is untested. > > [] > > > diff --git a/drivers/s390/cio/qdio_main.c > b/drivers/s390/cio/qdio_main.c > > [] > > > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct > qdio_q *q) > > > > > > static inline void account_sbals(struct qdio_q *q, int count) > > > { > > > - int pos = 0; > > > + int pos; > > > > > > q->q_stats.nr_sbal_total += count; > > > if (count == QDIO_MAX_BUFFERS_MASK) { > > >q->q_stats.nr_sbals[7]++; > > >return; > > > } > > > - while (count >>= 1) > > > - pos++; > > > + pos = ilog2(count); > > > > What guarantees count > 0 here? > > We would already be screwed when called with count < 0. Ursula, do the > callers assure that count is positive? > > Regards, > Sebastian > > > > count may be better unsigned. > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
yes, the callers guarantee that count 0 here. Regards, Ursula Braun On Thu, 2014-05-22 at 12:14 +0200, Ursula Braun1 wrote: From:Sebastian Ott seb...@linux.vnet.ibm.com To:Joe Perches j...@perches.com, Ursula Braun1/Germany/IBM@IBMDE, Cc:Fabian Frederick f...@skynet.be, linux-kernel linux-kernel@vger.kernel.org, akpm a...@linux-foundation.org Date:21/05/2014 14:32 Subject:Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2 __ On Tue, 20 May 2014, Joe Perches wrote: On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: This is untested. [] diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c [] @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); What guarantees count 0 here? We would already be screwed when called with count 0. Ursula, do the callers assure that count is positive? Regards, Sebastian count may be better unsigned. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Tue, 20 May 2014, Joe Perches wrote: > On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: > > This is untested. > [] > > diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c > [] > > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) > > > > static inline void account_sbals(struct qdio_q *q, int count) > > { > > - int pos = 0; > > + int pos; > > > > q->q_stats.nr_sbal_total += count; > > if (count == QDIO_MAX_BUFFERS_MASK) { > > q->q_stats.nr_sbals[7]++; > > return; > > } > > - while (count >>= 1) > > - pos++; > > + pos = ilog2(count); > > What guarantees count > 0 here? We would already be screwed when called with count < 0. Ursula, do the callers assure that count is positive? Regards, Sebastian > > count may be better unsigned. > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Tue, 20 May 2014, Joe Perches wrote: On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: This is untested. [] diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c [] @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); What guarantees count 0 here? We would already be screwed when called with count 0. Ursula, do the callers assure that count is positive? Regards, Sebastian count may be better unsigned. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: > This is untested. [] > diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c [] > @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) > > static inline void account_sbals(struct qdio_q *q, int count) > { > - int pos = 0; > + int pos; > > q->q_stats.nr_sbal_total += count; > if (count == QDIO_MAX_BUFFERS_MASK) { > q->q_stats.nr_sbals[7]++; > return; > } > - while (count >>= 1) > - pos++; > + pos = ilog2(count); What guarantees count > 0 here? count may be better unsigned. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
This is untested. Cc: Sebastian Ott Cc: Andrew Morton Signed-off-by: Fabian Frederick --- drivers/s390/cio/qdio_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 77466c4..8bf9ec1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q->q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q->q_stats.nr_sbals[7]++; return; } - while (count >>= 1) - pos++; + pos = ilog2(count); q->q_stats.nr_sbals[pos]++; } -- 1.8.4.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
This is untested. Cc: Sebastian Ott seb...@linux.vnet.ibm.com Cc: Andrew Morton a...@linux-foundation.org Signed-off-by: Fabian Frederick f...@skynet.be --- drivers/s390/cio/qdio_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 77466c4..8bf9ec1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); q-q_stats.nr_sbals[pos]++; } -- 1.8.4.5 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/1] drivers/s390/cio/qdio_main.c: replace shift loop by ilog2
On Tue, 2014-05-20 at 18:37 +0200, Fabian Frederick wrote: This is untested. [] diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c [] @@ -411,15 +411,14 @@ static inline void qdio_stop_polling(struct qdio_q *q) static inline void account_sbals(struct qdio_q *q, int count) { - int pos = 0; + int pos; q-q_stats.nr_sbal_total += count; if (count == QDIO_MAX_BUFFERS_MASK) { q-q_stats.nr_sbals[7]++; return; } - while (count = 1) - pos++; + pos = ilog2(count); What guarantees count 0 here? count may be better unsigned. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/