diff options
author | David S. Miller <davem@davemloft.net> | 2009-03-27 20:22:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-27 20:22:55 -0400 |
commit | 80e20f6f360078b4852eac6825883e5aa25564bb (patch) | |
tree | 817c24d119c64984a4c68f565118b5398937ab15 | |
parent | 79675900cbf2c4e67e95f94983ec4ee800b83739 (diff) |
Revert "netrom: zero length frame filtering in NetRom"
This reverts commit a3ac80a130300573de351083cf4a5b46d233e8bf.
Alan Cox says that zero length writes do have special meaning
and are useful in this protocol.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/netrom/af_netrom.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index d1c16bbee932..4e705f87969f 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c | |||
@@ -1037,10 +1037,6 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1037 | unsigned char *asmptr; | 1037 | unsigned char *asmptr; |
1038 | int size; | 1038 | int size; |
1039 | 1039 | ||
1040 | /* Netrom empty data frame has no meaning : don't send */ | ||
1041 | if (len == 0) | ||
1042 | return 0; | ||
1043 | |||
1044 | if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT)) | 1040 | if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT)) |
1045 | return -EINVAL; | 1041 | return -EINVAL; |
1046 | 1042 | ||
@@ -1175,11 +1171,6 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1175 | skb_reset_transport_header(skb); | 1171 | skb_reset_transport_header(skb); |
1176 | copied = skb->len; | 1172 | copied = skb->len; |
1177 | 1173 | ||
1178 | /* NetRom empty data frame has no meaning : ignore it */ | ||
1179 | if (copied == 0) { | ||
1180 | goto out; | ||
1181 | } | ||
1182 | |||
1183 | if (copied > size) { | 1174 | if (copied > size) { |
1184 | copied = size; | 1175 | copied = size; |
1185 | msg->msg_flags |= MSG_TRUNC; | 1176 | msg->msg_flags |= MSG_TRUNC; |
@@ -1195,7 +1186,7 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1195 | 1186 | ||
1196 | msg->msg_namelen = sizeof(*sax); | 1187 | msg->msg_namelen = sizeof(*sax); |
1197 | 1188 | ||
1198 | out: skb_free_datagram(sk, skb); | 1189 | skb_free_datagram(sk, skb); |
1199 | 1190 | ||
1200 | release_sock(sk); | 1191 | release_sock(sk); |
1201 | return copied; | 1192 | return copied; |