linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).