aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2012-05-11 18:17:07 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-12 15:11:18 -0400
commit514911678fdcb35f7f69ebf96daf0e22cdae95ae (patch)
tree5cee6cd2efe05692076d2d202c6f1569af77eba9
parentc80174f3da2f0edec2b66afad673e1f854e8f0ee (diff)
usb/net: rndis: merge command codes
Switch the hyperv filter and rndis gadget driver to use the same command enumerators as the other drivers and delete the surplus command codes. Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/hyperv/rndis_filter.c42
-rw-r--r--drivers/usb/gadget/rndis.c37
-rw-r--r--include/linux/rndis.h17
3 files changed, 39 insertions, 57 deletions
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 0d1034839d6..981ebb11563 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -129,8 +129,8 @@ static void dump_rndis_message(struct hv_device *hv_dev,
129 netdev = net_device->ndev; 129 netdev = net_device->ndev;
130 130
131 switch (rndis_msg->ndis_msg_type) { 131 switch (rndis_msg->ndis_msg_type) {
132 case REMOTE_NDIS_PACKET_MSG: 132 case RNDIS_MSG_PACKET:
133 netdev_dbg(netdev, "REMOTE_NDIS_PACKET_MSG (len %u, " 133 netdev_dbg(netdev, "RNDIS_MSG_PACKET (len %u, "
134 "data offset %u data len %u, # oob %u, " 134 "data offset %u data len %u, # oob %u, "
135 "oob offset %u, oob len %u, pkt offset %u, " 135 "oob offset %u, oob len %u, pkt offset %u, "
136 "pkt len %u\n", 136 "pkt len %u\n",
@@ -144,8 +144,8 @@ static void dump_rndis_message(struct hv_device *hv_dev,
144 rndis_msg->msg.pkt.per_pkt_info_len); 144 rndis_msg->msg.pkt.per_pkt_info_len);
145 break; 145 break;
146 146
147 case REMOTE_NDIS_INITIALIZE_CMPLT: 147 case RNDIS_MSG_INIT_C:
148 netdev_dbg(netdev, "REMOTE_NDIS_INITIALIZE_CMPLT " 148 netdev_dbg(netdev, "RNDIS_MSG_INIT_C "
149 "(len %u, id 0x%x, status 0x%x, major %d, minor %d, " 149 "(len %u, id 0x%x, status 0x%x, major %d, minor %d, "
150 "device flags %d, max xfer size 0x%x, max pkts %u, " 150 "device flags %d, max xfer size 0x%x, max pkts %u, "
151 "pkt aligned %u)\n", 151 "pkt aligned %u)\n",
@@ -162,8 +162,8 @@ static void dump_rndis_message(struct hv_device *hv_dev,
162 pkt_alignment_factor); 162 pkt_alignment_factor);
163 break; 163 break;
164 164
165 case REMOTE_NDIS_QUERY_CMPLT: 165 case RNDIS_MSG_QUERY_C:
166 netdev_dbg(netdev, "REMOTE_NDIS_QUERY_CMPLT " 166 netdev_dbg(netdev, "RNDIS_MSG_QUERY_C "
167 "(len %u, id 0x%x, status 0x%x, buf len %u, " 167 "(len %u, id 0x%x, status 0x%x, buf len %u, "
168 "buf offset %u)\n", 168 "buf offset %u)\n",
169 rndis_msg->msg_len, 169 rndis_msg->msg_len,
@@ -175,16 +175,16 @@ static void dump_rndis_message(struct hv_device *hv_dev,
175 info_buf_offset); 175 info_buf_offset);
176 break; 176 break;
177 177
178 case REMOTE_NDIS_SET_CMPLT: 178 case RNDIS_MSG_SET_C:
179 netdev_dbg(netdev, 179 netdev_dbg(netdev,
180 "REMOTE_NDIS_SET_CMPLT (len %u, id 0x%x, status 0x%x)\n", 180 "RNDIS_MSG_SET_C (len %u, id 0x%x, status 0x%x)\n",
181 rndis_msg->msg_len, 181 rndis_msg->msg_len,
182 rndis_msg->msg.set_complete.req_id, 182 rndis_msg->msg.set_complete.req_id,
183 rndis_msg->msg.set_complete.status); 183 rndis_msg->msg.set_complete.status);
184 break; 184 break;
185 185
186 case REMOTE_NDIS_INDICATE_STATUS_MSG: 186 case RNDIS_MSG_INDICATE:
187 netdev_dbg(netdev, "REMOTE_NDIS_INDICATE_STATUS_MSG " 187 netdev_dbg(netdev, "RNDIS_MSG_INDICATE "
188 "(len %u, status 0x%x, buf len %u, buf offset %u)\n", 188 "(len %u, status 0x%x, buf len %u, buf offset %u)\n",
189 rndis_msg->msg_len, 189 rndis_msg->msg_len,
190 rndis_msg->msg.indicate_status.status, 190 rndis_msg->msg.indicate_status.status,
@@ -264,7 +264,7 @@ static void rndis_filter_receive_response(struct rndis_device *dev,
264 sizeof(struct rndis_filter_packet)); 264 sizeof(struct rndis_filter_packet));
265 265
266 if (resp->ndis_msg_type == 266 if (resp->ndis_msg_type ==
267 REMOTE_NDIS_RESET_CMPLT) { 267 RNDIS_MSG_RESET_C) {
268 /* does not have a request id field */ 268 /* does not have a request id field */
269 request->response_msg.msg.reset_complete. 269 request->response_msg.msg.reset_complete.
270 status = RNDIS_STATUS_BUFFER_OVERFLOW; 270 status = RNDIS_STATUS_BUFFER_OVERFLOW;
@@ -415,19 +415,19 @@ int rndis_filter_receive(struct hv_device *dev,
415 dump_rndis_message(dev, rndis_msg); 415 dump_rndis_message(dev, rndis_msg);
416 416
417 switch (rndis_msg->ndis_msg_type) { 417 switch (rndis_msg->ndis_msg_type) {
418 case REMOTE_NDIS_PACKET_MSG: 418 case RNDIS_MSG_PACKET:
419 /* data msg */ 419 /* data msg */
420 rndis_filter_receive_data(rndis_dev, rndis_msg, pkt); 420 rndis_filter_receive_data(rndis_dev, rndis_msg, pkt);
421 break; 421 break;
422 422
423 case REMOTE_NDIS_INITIALIZE_CMPLT: 423 case RNDIS_MSG_INIT_C:
424 case REMOTE_NDIS_QUERY_CMPLT: 424 case RNDIS_MSG_QUERY_C:
425 case REMOTE_NDIS_SET_CMPLT: 425 case RNDIS_MSG_SET_C:
426 /* completion msgs */ 426 /* completion msgs */
427 rndis_filter_receive_response(rndis_dev, rndis_msg); 427 rndis_filter_receive_response(rndis_dev, rndis_msg);
428 break; 428 break;
429 429
430 case REMOTE_NDIS_INDICATE_STATUS_MSG: 430 case RNDIS_MSG_INDICATE:
431 /* notification msgs */ 431 /* notification msgs */
432 rndis_filter_receive_indicate_status(rndis_dev, rndis_msg); 432 rndis_filter_receive_indicate_status(rndis_dev, rndis_msg);
433 break; 433 break;
@@ -456,7 +456,7 @@ static int rndis_filter_query_device(struct rndis_device *dev, u32 oid,
456 return -EINVAL; 456 return -EINVAL;
457 457
458 *result_size = 0; 458 *result_size = 0;
459 request = get_rndis_request(dev, REMOTE_NDIS_QUERY_MSG, 459 request = get_rndis_request(dev, RNDIS_MSG_QUERY,
460 RNDIS_MESSAGE_SIZE(struct rndis_query_request)); 460 RNDIS_MESSAGE_SIZE(struct rndis_query_request));
461 if (!request) { 461 if (!request) {
462 ret = -ENOMEM; 462 ret = -ENOMEM;
@@ -536,7 +536,7 @@ int rndis_filter_set_packet_filter(struct rndis_device *dev, u32 new_filter)
536 536
537 ndev = dev->net_dev->ndev; 537 ndev = dev->net_dev->ndev;
538 538
539 request = get_rndis_request(dev, REMOTE_NDIS_SET_MSG, 539 request = get_rndis_request(dev, RNDIS_MSG_SET,
540 RNDIS_MESSAGE_SIZE(struct rndis_set_request) + 540 RNDIS_MESSAGE_SIZE(struct rndis_set_request) +
541 sizeof(u32)); 541 sizeof(u32));
542 if (!request) { 542 if (!request) {
@@ -588,7 +588,7 @@ static int rndis_filter_init_device(struct rndis_device *dev)
588 u32 status; 588 u32 status;
589 int ret, t; 589 int ret, t;
590 590
591 request = get_rndis_request(dev, REMOTE_NDIS_INITIALIZE_MSG, 591 request = get_rndis_request(dev, RNDIS_MSG_INIT,
592 RNDIS_MESSAGE_SIZE(struct rndis_initialize_request)); 592 RNDIS_MESSAGE_SIZE(struct rndis_initialize_request));
593 if (!request) { 593 if (!request) {
594 ret = -ENOMEM; 594 ret = -ENOMEM;
@@ -641,7 +641,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
641 struct rndis_halt_request *halt; 641 struct rndis_halt_request *halt;
642 642
643 /* Attempt to do a rndis device halt */ 643 /* Attempt to do a rndis device halt */
644 request = get_rndis_request(dev, REMOTE_NDIS_HALT_MSG, 644 request = get_rndis_request(dev, RNDIS_MSG_HALT,
645 RNDIS_MESSAGE_SIZE(struct rndis_halt_request)); 645 RNDIS_MESSAGE_SIZE(struct rndis_halt_request));
646 if (!request) 646 if (!request)
647 goto cleanup; 647 goto cleanup;
@@ -805,7 +805,7 @@ int rndis_filter_send(struct hv_device *dev,
805 if (isvlan) 805 if (isvlan)
806 rndis_msg_size += NDIS_VLAN_PPI_SIZE; 806 rndis_msg_size += NDIS_VLAN_PPI_SIZE;
807 807
808 rndis_msg->ndis_msg_type = REMOTE_NDIS_PACKET_MSG; 808 rndis_msg->ndis_msg_type = RNDIS_MSG_PACKET;
809 rndis_msg->msg_len = pkt->total_data_buflen + 809 rndis_msg->msg_len = pkt->total_data_buflen +
810 rndis_msg_size; 810 rndis_msg_size;
811 811
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index d9086caab64..d747e891262 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -577,7 +577,7 @@ static int rndis_init_response(int configNr, rndis_init_msg_type *buf)
577 return -ENOMEM; 577 return -ENOMEM;
578 resp = (rndis_init_cmplt_type *)r->buf; 578 resp = (rndis_init_cmplt_type *)r->buf;
579 579
580 resp->MessageType = cpu_to_le32(REMOTE_NDIS_INITIALIZE_CMPLT); 580 resp->MessageType = cpu_to_le32(RNDIS_MSG_INIT_C);
581 resp->MessageLength = cpu_to_le32(52); 581 resp->MessageLength = cpu_to_le32(52);
582 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */ 582 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
583 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS); 583 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS);
@@ -621,7 +621,7 @@ static int rndis_query_response(int configNr, rndis_query_msg_type *buf)
621 return -ENOMEM; 621 return -ENOMEM;
622 resp = (rndis_query_cmplt_type *)r->buf; 622 resp = (rndis_query_cmplt_type *)r->buf;
623 623
624 resp->MessageType = cpu_to_le32(REMOTE_NDIS_QUERY_CMPLT); 624 resp->MessageType = cpu_to_le32(RNDIS_MSG_QUERY_C);
625 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */ 625 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
626 626
627 if (gen_ndis_query_resp(configNr, le32_to_cpu(buf->OID), 627 if (gen_ndis_query_resp(configNr, le32_to_cpu(buf->OID),
@@ -668,7 +668,7 @@ static int rndis_set_response(int configNr, rndis_set_msg_type *buf)
668 pr_debug("\n"); 668 pr_debug("\n");
669#endif 669#endif
670 670
671 resp->MessageType = cpu_to_le32(REMOTE_NDIS_SET_CMPLT); 671 resp->MessageType = cpu_to_le32(RNDIS_MSG_SET_C);
672 resp->MessageLength = cpu_to_le32(16); 672 resp->MessageLength = cpu_to_le32(16);
673 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */ 673 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
674 if (gen_ndis_set_resp(configNr, le32_to_cpu(buf->OID), 674 if (gen_ndis_set_resp(configNr, le32_to_cpu(buf->OID),
@@ -692,7 +692,7 @@ static int rndis_reset_response(int configNr, rndis_reset_msg_type *buf)
692 return -ENOMEM; 692 return -ENOMEM;
693 resp = (rndis_reset_cmplt_type *)r->buf; 693 resp = (rndis_reset_cmplt_type *)r->buf;
694 694
695 resp->MessageType = cpu_to_le32(REMOTE_NDIS_RESET_CMPLT); 695 resp->MessageType = cpu_to_le32(RNDIS_MSG_RESET_C);
696 resp->MessageLength = cpu_to_le32(16); 696 resp->MessageLength = cpu_to_le32(16);
697 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS); 697 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS);
698 /* resent information */ 698 /* resent information */
@@ -716,8 +716,7 @@ static int rndis_keepalive_response(int configNr,
716 return -ENOMEM; 716 return -ENOMEM;
717 resp = (rndis_keepalive_cmplt_type *)r->buf; 717 resp = (rndis_keepalive_cmplt_type *)r->buf;
718 718
719 resp->MessageType = cpu_to_le32( 719 resp->MessageType = cpu_to_le32(RNDIS_MSG_KEEPALIVE_C);
720 REMOTE_NDIS_KEEPALIVE_CMPLT);
721 resp->MessageLength = cpu_to_le32(16); 720 resp->MessageLength = cpu_to_le32(16);
722 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */ 721 resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
723 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS); 722 resp->Status = cpu_to_le32(RNDIS_STATUS_SUCCESS);
@@ -745,7 +744,7 @@ static int rndis_indicate_status_msg(int configNr, u32 status)
745 return -ENOMEM; 744 return -ENOMEM;
746 resp = (rndis_indicate_status_msg_type *)r->buf; 745 resp = (rndis_indicate_status_msg_type *)r->buf;
747 746
748 resp->MessageType = cpu_to_le32(REMOTE_NDIS_INDICATE_STATUS_MSG); 747 resp->MessageType = cpu_to_le32(RNDIS_MSG_INDICATE);
749 resp->MessageLength = cpu_to_le32(20); 748 resp->MessageLength = cpu_to_le32(20);
750 resp->Status = cpu_to_le32(status); 749 resp->Status = cpu_to_le32(status);
751 resp->StatusBufferLength = cpu_to_le32(0); 750 resp->StatusBufferLength = cpu_to_le32(0);
@@ -817,15 +816,15 @@ int rndis_msg_parser(u8 configNr, u8 *buf)
817 816
818 /* For USB: responses may take up to 10 seconds */ 817 /* For USB: responses may take up to 10 seconds */
819 switch (MsgType) { 818 switch (MsgType) {
820 case REMOTE_NDIS_INITIALIZE_MSG: 819 case RNDIS_MSG_INIT:
821 pr_debug("%s: REMOTE_NDIS_INITIALIZE_MSG\n", 820 pr_debug("%s: RNDIS_MSG_INIT\n",
822 __func__); 821 __func__);
823 params->state = RNDIS_INITIALIZED; 822 params->state = RNDIS_INITIALIZED;
824 return rndis_init_response(configNr, 823 return rndis_init_response(configNr,
825 (rndis_init_msg_type *)buf); 824 (rndis_init_msg_type *)buf);
826 825
827 case REMOTE_NDIS_HALT_MSG: 826 case RNDIS_MSG_HALT:
828 pr_debug("%s: REMOTE_NDIS_HALT_MSG\n", 827 pr_debug("%s: RNDIS_MSG_HALT\n",
829 __func__); 828 __func__);
830 params->state = RNDIS_UNINITIALIZED; 829 params->state = RNDIS_UNINITIALIZED;
831 if (params->dev) { 830 if (params->dev) {
@@ -834,24 +833,24 @@ int rndis_msg_parser(u8 configNr, u8 *buf)
834 } 833 }
835 return 0; 834 return 0;
836 835
837 case REMOTE_NDIS_QUERY_MSG: 836 case RNDIS_MSG_QUERY:
838 return rndis_query_response(configNr, 837 return rndis_query_response(configNr,
839 (rndis_query_msg_type *)buf); 838 (rndis_query_msg_type *)buf);
840 839
841 case REMOTE_NDIS_SET_MSG: 840 case RNDIS_MSG_SET:
842 return rndis_set_response(configNr, 841 return rndis_set_response(configNr,
843 (rndis_set_msg_type *)buf); 842 (rndis_set_msg_type *)buf);
844 843
845 case REMOTE_NDIS_RESET_MSG: 844 case RNDIS_MSG_RESET:
846 pr_debug("%s: REMOTE_NDIS_RESET_MSG\n", 845 pr_debug("%s: RNDIS_MSG_RESET\n",
847 __func__); 846 __func__);
848 return rndis_reset_response(configNr, 847 return rndis_reset_response(configNr,
849 (rndis_reset_msg_type *)buf); 848 (rndis_reset_msg_type *)buf);
850 849
851 case REMOTE_NDIS_KEEPALIVE_MSG: 850 case RNDIS_MSG_KEEPALIVE:
852 /* For USB: host does this every 5 seconds */ 851 /* For USB: host does this every 5 seconds */
853 if (rndis_debug > 1) 852 if (rndis_debug > 1)
854 pr_debug("%s: REMOTE_NDIS_KEEPALIVE_MSG\n", 853 pr_debug("%s: RNDIS_MSG_KEEPALIVE\n",
855 __func__); 854 __func__);
856 return rndis_keepalive_response(configNr, 855 return rndis_keepalive_response(configNr,
857 (rndis_keepalive_msg_type *) 856 (rndis_keepalive_msg_type *)
@@ -963,7 +962,7 @@ void rndis_add_hdr(struct sk_buff *skb)
963 return; 962 return;
964 header = (void *)skb_push(skb, sizeof(*header)); 963 header = (void *)skb_push(skb, sizeof(*header));
965 memset(header, 0, sizeof *header); 964 memset(header, 0, sizeof *header);
966 header->MessageType = cpu_to_le32(REMOTE_NDIS_PACKET_MSG); 965 header->MessageType = cpu_to_le32(RNDIS_MSG_PACKET);
967 header->MessageLength = cpu_to_le32(skb->len); 966 header->MessageLength = cpu_to_le32(skb->len);
968 header->DataOffset = cpu_to_le32(36); 967 header->DataOffset = cpu_to_le32(36);
969 header->DataLength = cpu_to_le32(skb->len - sizeof(*header)); 968 header->DataLength = cpu_to_le32(skb->len - sizeof(*header));
@@ -1031,7 +1030,7 @@ int rndis_rm_hdr(struct gether *port,
1031 __le32 *tmp = (void *)skb->data; 1030 __le32 *tmp = (void *)skb->data;
1032 1031
1033 /* MessageType, MessageLength */ 1032 /* MessageType, MessageLength */
1034 if (cpu_to_le32(REMOTE_NDIS_PACKET_MSG) 1033 if (cpu_to_le32(RNDIS_MSG_PACKET)
1035 != get_unaligned(tmp++)) { 1034 != get_unaligned(tmp++)) {
1036 dev_kfree_skb_any(skb); 1035 dev_kfree_skb_any(skb);
1037 return -EINVAL; 1036 return -EINVAL;
diff --git a/include/linux/rndis.h b/include/linux/rndis.h
index bdad7ab541e..18a27a448f9 100644
--- a/include/linux/rndis.h
+++ b/include/linux/rndis.h
@@ -199,23 +199,6 @@
199#define RNDIS_MAJOR_VERSION 0x00000001 199#define RNDIS_MAJOR_VERSION 0x00000001
200#define RNDIS_MINOR_VERSION 0x00000000 200#define RNDIS_MINOR_VERSION 0x00000000
201 201
202/* Message Set for Connectionless (802.3) Devices */
203#define REMOTE_NDIS_PACKET_MSG 0x00000001U
204#define REMOTE_NDIS_INITIALIZE_MSG 0x00000002U /* Initialize device */
205#define REMOTE_NDIS_HALT_MSG 0x00000003U
206#define REMOTE_NDIS_QUERY_MSG 0x00000004U
207#define REMOTE_NDIS_SET_MSG 0x00000005U
208#define REMOTE_NDIS_RESET_MSG 0x00000006U
209#define REMOTE_NDIS_INDICATE_STATUS_MSG 0x00000007U
210#define REMOTE_NDIS_KEEPALIVE_MSG 0x00000008U
211
212/* Message completion */
213#define REMOTE_NDIS_INITIALIZE_CMPLT 0x80000002U
214#define REMOTE_NDIS_QUERY_CMPLT 0x80000004U
215#define REMOTE_NDIS_SET_CMPLT 0x80000005U
216#define REMOTE_NDIS_RESET_CMPLT 0x80000006U
217#define REMOTE_NDIS_KEEPALIVE_CMPLT 0x80000008U
218
219/* Device Flags */ 202/* Device Flags */
220#define RNDIS_DF_CONNECTIONLESS 0x00000001U 203#define RNDIS_DF_CONNECTIONLESS 0x00000001U
221#define RNDIS_DF_CONNECTION_ORIENTED 0x00000002U 204#define RNDIS_DF_CONNECTION_ORIENTED 0x00000002U