* [PATCH net-next 0/4] rxrpc: Fixes
@ 2016-10-13 16:12 David Howells
2016-10-13 16:12 ` [PATCH net 1/4] afs: unmapping the wrong buffer David Howells
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: David Howells @ 2016-10-13 16:12 UTC (permalink / raw)
To: netdev; +Cc: dhowells, linux-afs, dan.carpenter, linux-kernel
This set of patches contains a bunch of fixes:
(1) Fix use of kunmap() after change from kunmap_atomic() within AFS.
(2) Don't use of ERR_PTR() with an always zero value.
(3) Check the right error when using ip6_route_output().
(4) Be consistent about whether call->operation_ID is BE or CPU-E within
AFS.
The patches can be found here also:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-rewrite
Tagged thusly:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-rewrite-20161013
David
---
Dan Carpenter (1):
afs: unmapping the wrong buffer
David Howells (3):
rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR()
rxrpc: Fix checking of error from ip6_route_output()
afs: call->operation_ID sometimes used as __be32 sometimes as u32
fs/afs/cmservice.c | 6 ++----
fs/afs/fsclient.c | 4 ++--
fs/afs/internal.h | 2 +-
fs/afs/rxrpc.c | 3 ++-
net/rxrpc/call_object.c | 2 +-
net/rxrpc/peer_object.c | 4 ++--
6 files changed, 10 insertions(+), 11 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net 1/4] afs: unmapping the wrong buffer
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
@ 2016-10-13 16:12 ` David Howells
2016-10-13 16:12 ` [PATCH net 2/4] rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR() David Howells
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2016-10-13 16:12 UTC (permalink / raw)
To: netdev; +Cc: dhowells, linux-afs, dan.carpenter, linux-kernel
From: Dan Carpenter <dan.carpenter@oracle.com>
We switched from kmap_atomic() to kmap() so the kunmap() calls need to
be updated to match.
Fixes: d001648ec7cf ('rxrpc: Don't expose skbs to in-kernel users [ver #2]')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/afs/fsclient.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index 96f4d764d1a6..31c616ab9b40 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -364,7 +364,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
buffer = kmap(page);
ret = afs_extract_data(call, buffer,
call->count, true);
- kunmap(buffer);
+ kunmap(page);
if (ret < 0)
return ret;
}
@@ -397,7 +397,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
page = call->reply3;
buffer = kmap(page);
memset(buffer + call->count, 0, PAGE_SIZE - call->count);
- kunmap(buffer);
+ kunmap(page);
}
_leave(" = 0 [done]");
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 2/4] rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR()
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
2016-10-13 16:12 ` [PATCH net 1/4] afs: unmapping the wrong buffer David Howells
@ 2016-10-13 16:12 ` David Howells
2016-10-13 16:12 ` [PATCH net 3/4] rxrpc: Fix checking of error from ip6_route_output() David Howells
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2016-10-13 16:12 UTC (permalink / raw)
To: netdev; +Cc: dhowells, linux-afs, dan.carpenter, linux-kernel
Fix the following checker warning:
net/rxrpc/call_object.c:279 rxrpc_new_client_call()
warn: passing zero to 'ERR_PTR'
where a value that's always zero is passed to ERR_PTR() so that it can be
passed to a tracepoint in an auxiliary pointer field.
Just pass NULL instead to the tracepoint.
Fixes: a84a46d73050 ("rxrpc: Add some additional call tracing")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David Howells <dhowells@redhat.com>
---
net/rxrpc/call_object.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c
index 4353a29f3b57..1ed18d8c9c9f 100644
--- a/net/rxrpc/call_object.c
+++ b/net/rxrpc/call_object.c
@@ -276,7 +276,7 @@ struct rxrpc_call *rxrpc_new_client_call(struct rxrpc_sock *rx,
goto error;
trace_rxrpc_call(call, rxrpc_call_connected, atomic_read(&call->usage),
- here, ERR_PTR(ret));
+ here, NULL);
spin_lock_bh(&call->conn->params.peer->lock);
hlist_add_head(&call->error_link,
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 3/4] rxrpc: Fix checking of error from ip6_route_output()
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
2016-10-13 16:12 ` [PATCH net 1/4] afs: unmapping the wrong buffer David Howells
2016-10-13 16:12 ` [PATCH net 2/4] rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR() David Howells
@ 2016-10-13 16:12 ` David Howells
2016-10-13 16:12 ` [PATCH net 4/4] afs: call->operation_ID sometimes used as __be32 sometimes as u32 David Howells
2016-10-14 14:45 ` [PATCH net-next 0/4] rxrpc: Fixes David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2016-10-13 16:12 UTC (permalink / raw)
To: netdev; +Cc: dhowells, linux-afs, dan.carpenter, linux-kernel
ip6_route_output() doesn't return a negative error when it fails, rather
the ->error field of the returned dst_entry struct needs to be checked.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: 75b54cb57ca3 ("rxrpc: Add IPv6 support")
Signed-off-by: David Howells <dhowells@redhat.com>
---
net/rxrpc/peer_object.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/rxrpc/peer_object.c b/net/rxrpc/peer_object.c
index 941b724d523b..862eea6b266c 100644
--- a/net/rxrpc/peer_object.c
+++ b/net/rxrpc/peer_object.c
@@ -193,8 +193,8 @@ static void rxrpc_assess_MTU_size(struct rxrpc_peer *peer)
fl6->fl6_dport = htons(7001);
fl6->fl6_sport = htons(7000);
dst = ip6_route_output(&init_net, NULL, fl6);
- if (IS_ERR(dst)) {
- _leave(" [route err %ld]", PTR_ERR(dst));
+ if (dst->error) {
+ _leave(" [route err %d]", dst->error);
return;
}
break;
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 4/4] afs: call->operation_ID sometimes used as __be32 sometimes as u32
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
` (2 preceding siblings ...)
2016-10-13 16:12 ` [PATCH net 3/4] rxrpc: Fix checking of error from ip6_route_output() David Howells
@ 2016-10-13 16:12 ` David Howells
2016-10-14 14:45 ` [PATCH net-next 0/4] rxrpc: Fixes David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Howells @ 2016-10-13 16:12 UTC (permalink / raw)
To: netdev; +Cc: dhowells, linux-afs, dan.carpenter, linux-kernel
call->operation_ID is sometimes being used as __be32 sometimes is being
used as u32. Be consistent and settle on using as u32.
Signed-off-by: David Howells <dhowells@redhat.com.
---
fs/afs/cmservice.c | 6 ++----
fs/afs/internal.h | 2 +-
fs/afs/rxrpc.c | 3 ++-
3 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
index 2037e7a77a37..d764236072b1 100644
--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -91,11 +91,9 @@ static const struct afs_call_type afs_SRXCBTellMeAboutYourself = {
*/
bool afs_cm_incoming_call(struct afs_call *call)
{
- u32 operation_id = ntohl(call->operation_ID);
+ _enter("{CB.OP %u}", call->operation_ID);
- _enter("{CB.OP %u}", operation_id);
-
- switch (operation_id) {
+ switch (call->operation_ID) {
case CBCallBack:
call->type = &afs_SRXCBCallBack;
return true;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 5497c8496055..535a38d2c1d0 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -112,7 +112,7 @@ struct afs_call {
bool need_attention; /* T if RxRPC poked us */
u16 service_id; /* RxRPC service ID to call */
__be16 port; /* target UDP port */
- __be32 operation_ID; /* operation ID for an incoming call */
+ u32 operation_ID; /* operation ID for an incoming call */
u32 count; /* count for use in unmarshalling */
__be32 tmp; /* place to extract temporary data */
afs_dataversion_t store_version; /* updated version expected from store */
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 477928b25940..25f05a8d21b1 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -676,10 +676,11 @@ static int afs_deliver_cm_op_id(struct afs_call *call)
ASSERTCMP(call->offset, <, 4);
/* the operation ID forms the first four bytes of the request data */
- ret = afs_extract_data(call, &call->operation_ID, 4, true);
+ ret = afs_extract_data(call, &call->tmp, 4, true);
if (ret < 0)
return ret;
+ call->operation_ID = ntohl(call->tmp);
call->state = AFS_CALL_AWAIT_REQUEST;
call->offset = 0;
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 0/4] rxrpc: Fixes
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
` (3 preceding siblings ...)
2016-10-13 16:12 ` [PATCH net 4/4] afs: call->operation_ID sometimes used as __be32 sometimes as u32 David Howells
@ 2016-10-14 14:45 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2016-10-14 14:45 UTC (permalink / raw)
To: dhowells; +Cc: netdev, linux-afs, dan.carpenter, linux-kernel
From: David Howells <dhowells@redhat.com>
Date: Thu, 13 Oct 2016 17:12:09 +0100
>
> This set of patches contains a bunch of fixes:
>
> (1) Fix use of kunmap() after change from kunmap_atomic() within AFS.
>
> (2) Don't use of ERR_PTR() with an always zero value.
>
> (3) Check the right error when using ip6_route_output().
>
> (4) Be consistent about whether call->operation_ID is BE or CPU-E within
> AFS.
>
> The patches can be found here also:
>
> http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-rewrite
>
> Tagged thusly:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
> rxrpc-rewrite-20161013
Pulled, thanks David.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-10-14 14:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-13 16:12 [PATCH net-next 0/4] rxrpc: Fixes David Howells
2016-10-13 16:12 ` [PATCH net 1/4] afs: unmapping the wrong buffer David Howells
2016-10-13 16:12 ` [PATCH net 2/4] rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR() David Howells
2016-10-13 16:12 ` [PATCH net 3/4] rxrpc: Fix checking of error from ip6_route_output() David Howells
2016-10-13 16:12 ` [PATCH net 4/4] afs: call->operation_ID sometimes used as __be32 sometimes as u32 David Howells
2016-10-14 14:45 ` [PATCH net-next 0/4] rxrpc: Fixes David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).