浏览代码

[PATCH] USB: gadget zero poisons OUT buffers

Fill OUT buffers with 0x55 before RX, so that controller driver
bugs that mangle data can be more readily detected during testing.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Brownell 19 年之前
父节点
当前提交
35fcca442a
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      drivers/usb/gadget/zero.c

+ 5 - 2
drivers/usb/gadget/zero.c

@@ -572,9 +572,10 @@ static void source_sink_complete (struct usb_ep *ep, struct usb_request *req)
 	switch (status) {
 	switch (status) {
 
 
 	case 0: 			/* normal completion? */
 	case 0: 			/* normal completion? */
-		if (ep == dev->out_ep)
+		if (ep == dev->out_ep) {
 			check_read_data (dev, ep, req);
 			check_read_data (dev, ep, req);
-		else
+			memset (req->buf, 0x55, req->length);
+		} else
 			reinit_write_data (dev, ep, req);
 			reinit_write_data (dev, ep, req);
 		break;
 		break;
 
 
@@ -626,6 +627,8 @@ source_sink_start_ep (struct usb_ep *ep, gfp_t gfp_flags)
 
 
 	if (strcmp (ep->name, EP_IN_NAME) == 0)
 	if (strcmp (ep->name, EP_IN_NAME) == 0)
 		reinit_write_data (ep->driver_data, ep, req);
 		reinit_write_data (ep->driver_data, ep, req);
+	else
+		memset (req->buf, 0x55, req->length);
 
 
 	status = usb_ep_queue (ep, req, gfp_flags);
 	status = usb_ep_queue (ep, req, gfp_flags);
 	if (status) {
 	if (status) {