From: Rusty Russell <rusty@rustcorp.com.au>
To: linux-kernel@vger.kernel.org
Cc: Rusty Russell <rusty@rustcorp.com.au>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: [PATCH 3/9] s390: Replace weird use of PTR_RET.
Date: Sun, 16 Jun 2013 14:12:42 +0930 [thread overview]
Message-ID: <1371357768-4968-3-git-send-email-rusty@rustcorp.com.au> (raw)
In-Reply-To: <1371357768-4968-1-git-send-email-rusty@rustcorp.com.au>
Saves repeating "(void __force *)__uptr" but it's less clear. Using
the output of PTR_RET() to determine the error rather than just
testing IS_ERR() is odd.
For example, I *assume* __gptr_to_uptr() never returns NULL? Because
the __ret would be 0 for the old code. The new version is clearer, IMHO:
it would try to get_user() on that address.
If you hate this variant, I can just s/PTR_RET/PTR_ERR_OR_ZERO/ instead.
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
arch/s390/kvm/gaccess.h | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/arch/s390/kvm/gaccess.h b/arch/s390/kvm/gaccess.h
index 302e0e5..99d789e 100644
--- a/arch/s390/kvm/gaccess.h
+++ b/arch/s390/kvm/gaccess.h
@@ -42,9 +42,11 @@ static inline void __user *__gptr_to_uptr(struct kvm_vcpu *vcpu,
({ \
__typeof__(gptr) __uptr = __gptr_to_uptr(vcpu, gptr, 1);\
int __mask = sizeof(__typeof__(*(gptr))) - 1; \
- int __ret = PTR_RET((void __force *)__uptr); \
+ int __ret; \
\
- if (!__ret) { \
+ if (IS_ERR((void __force *)__uptr)) { \
+ __ret = PTR_ERR((void __force *)__uptr); \
+ } else { \
BUG_ON((unsigned long)__uptr & __mask); \
__ret = get_user(x, __uptr); \
} \
@@ -55,9 +57,11 @@ static inline void __user *__gptr_to_uptr(struct kvm_vcpu *vcpu,
({ \
__typeof__(gptr) __uptr = __gptr_to_uptr(vcpu, gptr, 1);\
int __mask = sizeof(__typeof__(*(gptr))) - 1; \
- int __ret = PTR_RET((void __force *)__uptr); \
+ int __ret; \
\
- if (!__ret) { \
+ if (IS_ERR((void __force *)__uptr)) { \
+ __ret = PTR_ERR((void __force *)__uptr); \
+ } else { \
BUG_ON((unsigned long)__uptr & __mask); \
__ret = put_user(x, __uptr); \
} \
--
1.8.1.2
next prev parent reply other threads:[~2013-06-16 4:46 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-01 9:56 [PATCH] virtio-mmio: Cocci spatch "ptr_ret.spatch" Thomas Meyer
2013-06-03 2:29 ` [RFC] PTR_ERR: return 0 if ptr isn't an error value Rusty Russell
2013-06-03 7:15 ` Uwe Kleine-König
2013-06-08 21:07 ` Julia Lawall
2013-06-13 4:37 ` Rusty Russell
2013-06-13 7:30 ` Michael S. Tsirkin
2013-06-13 7:56 ` Julia Lawall
2013-06-16 2:44 ` Rusty Russell
2013-06-16 4:42 ` [PATCH 1/9] PTR_RET is now PTR_ERR_OR_ZERO Rusty Russell
2013-06-16 4:42 ` [PATCH 2/9] PTR_RET is now PTR_ERR_OR_ZERO(): Replace most Rusty Russell
2013-06-20 6:05 ` David Miller
2013-06-25 7:47 ` Benjamin Herrenschmidt
2013-06-16 4:42 ` Rusty Russell [this message]
2013-06-17 5:03 ` [PATCH 3/9] s390: Replace weird use of PTR_RET Heiko Carstens
2013-06-16 4:42 ` [PATCH 4/9] acpi: " Rusty Russell
2013-06-16 11:55 ` Rafael J. Wysocki
2013-06-16 4:42 ` [PATCH 5/9] pinctrl: don't use PTR_RET() Rusty Russell
2013-06-16 4:42 ` [PATCH 6/9] remoteproc: " Rusty Russell
2013-06-17 3:15 ` Ohad Ben-Cohen
2013-06-17 3:49 ` Rusty Russell
2013-06-16 4:42 ` [PATCH 7/9] staging/zcache: " Rusty Russell
2013-06-16 4:42 ` [PATCH 8/9] x86: remove weird PTR_ERR() in do_debug Rusty Russell
2013-06-19 18:43 ` [tip:x86/debug] x86: Remove " tip-bot for Rusty Russell
2013-06-16 4:42 ` [PATCH 9/9] mm/oom_kill: remove weird use of ERR_PTR()/PTR_ERR() Rusty Russell
2013-06-16 18:11 ` David Rientjes
2013-06-17 3:50 ` Rusty Russell
2013-06-09 5:55 ` [RFC] PTR_ERR: return 0 if ptr isn't an error value Rusty Russell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1371357768-4968-3-git-send-email-rusty@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=borntraeger@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=schwidefsky@de.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome