Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp2867024ybx; Fri, 8 Nov 2019 10:28:21 -0800 (PST) X-Google-Smtp-Source: APXvYqw6TdKQt5Vi0LOeuRmZHHh5PZkQcP+gDg37iRSpAmxMjgEg7GIo5tq7BTb58rpK9KK0y2RN X-Received: by 2002:a17:906:3ec8:: with SMTP id d8mr10263406ejj.55.1573237701676; Fri, 08 Nov 2019 10:28:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573237701; cv=none; d=google.com; s=arc-20160816; b=LHhIuS1beS7zPrnPJkwm3gG81zLOHQgSr49g7KbqwggyWlIsNEoGDu15zX8Mvhkw5E bHcqs0SCZFsvhW5BH/Tu0hmk09kTZVpQKQDICdMLruPWsUmHFyi8POjJizVBesQWNPFQ uki8jrEEwm8XbpOlnF5w2O8xkrPLyZNjK0gTfKjidzhIHmw7BAp/e5PXLGN3S2U81h+d q9/tOrRRRYuWsvc5iR+DPI+dPMSL2apX/galfIBCpHvMhtUxwc+0reLDM8YPwl/HkVV4 uFfrd2E9ECERPiusiCww6Diff6SUxBe3W4vTx1DoeyNFal2rKds1eWO7AIIHivEyq6KA rB+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:mime-version :message-id:date:dkim-signature; bh=InCRmCaYMSJuejWdhbWZ80dHI+Ie599QAOMGzNVa8w0=; b=JFqTDeUCmOdV0hs/xD8wtROyX6wJ23xqE87yV1ey3NkZOcGf6ZM3AbzMVQdBfv/u/m oDHgfsTWmTG7Cm5ZJjwJ2XqpZLctFjSPTlRMcqFLD/6+Z3kWEdPQgTwjqrmxwoaXQyRS J2JK9kV4PD8u5ggG0JWhsTD/Gx6viqDZhfLOno8HktOLW2n1EG8sTu0rSDj+bnnu3Mrl 2HDcLjP0RzMaA/buVq3MpEM7d3+DqXSHTlyU79+sVJuSrguR9Qac6b+O/LUHIDg5bjxR qZjs3F+Dm2Lucc2EhKoRqNs0fsCbMgWn369U10IIbaFbGxLdVQIollTXC8eJ3yNdMZfQ Jj3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=TP+7I1u8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h7si4202775ejp.203.2019.11.08.10.27.58; Fri, 08 Nov 2019 10:28:21 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=TP+7I1u8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729790AbfKHS1C (ORCPT + 99 others); Fri, 8 Nov 2019 13:27:02 -0500 Received: from mail-vs1-f73.google.com ([209.85.217.73]:50961 "EHLO mail-vs1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727655AbfKHS1C (ORCPT ); Fri, 8 Nov 2019 13:27:02 -0500 Received: by mail-vs1-f73.google.com with SMTP id z1so744567vsq.17 for ; Fri, 08 Nov 2019 10:27:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=InCRmCaYMSJuejWdhbWZ80dHI+Ie599QAOMGzNVa8w0=; b=TP+7I1u88l92JkOCamU28Y5ZsK5+tbfj3eufSxGmmqP49N30NQLzAHdNGZ66T3MoPr RA/ZnHYToLy6UXCbTnIypGk1BGHP0XmqM+n8G7XL4DwXXFYSdZmYOJqeDkVKENYdmeG9 AlR7d2DJ6GkwZfljvLkYTJH+AdsPWtr3jJ4BJ+W1/eu95Rvi/av/ntF9C1Jxjg+spfpZ LSUOLmspBQpXt+PYu69w3xGGs1kwiy5bYkqPlYFjG/nDl8Q2JeqRW9Necr+SLpsBrnOl WLxHgTI7ib54OB3WEJGhxxMF1EdzBMIrCBk+sYoS3YsSM7XqA1Lc7mHYPs7sDeClhCZu irPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=InCRmCaYMSJuejWdhbWZ80dHI+Ie599QAOMGzNVa8w0=; b=ObRvgiPEiu4aOJs4uOWcYtKu28+0Mhb+g7SmO3nTCoCloXJ59I8w5076e7k3FBH1Cd WsTmJEQwNr347lXRmJmzWcu6p8hWlXinALsU+9sgFD/n3v9yTNHXhHNXfDkf5RP5bWyg OEFIkSPLpf+jKhGNggoj763Y1dGfIqCYC0k70AnKwJQUTlr4hSrTLRmbASlYsFb4/H5t wBE0kUFUnHEAoqLYgVgV5eXkNnjI6qBXS7CyQkEl3Kipzgm5Yjtl/LnOkUFKlGf/8OIh 2KsJ40KfYmGFlGJWW6NBcT3Dwn7BU1YnmTlTjxeAzD66APwoZlk0VPEpqQGsSxwkXMIK r1iw== X-Gm-Message-State: APjAAAWMtlPwc690NtlHGpzQLVsXxEyyIShT4o9t+Cbp6MPRTsEs2CTj xGC1RnWweeDJJa8T98Odl44hsuWWTRMGhtQr X-Received: by 2002:a05:6102:835:: with SMTP id k21mr8718518vsb.11.1573237621016; Fri, 08 Nov 2019 10:27:01 -0800 (PST) Date: Fri, 8 Nov 2019 19:26:54 +0100 Message-Id: Mime-Version: 1.0 X-Mailer: git-send-email 2.24.0.rc1.363.gb1bccd3e3d-goog Subject: [PATCH 0/1] usb: gadget: add raw-gadget interface From: Andrey Konovalov To: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Alan Stern Cc: Jonathan Corbet , Felipe Balbi , Dmitry Vyukov , Alexander Potapenko , Marco Elver , Andrey Konovalov Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset (currently a single patch) adds a new userspace interface for the USB Gadget subsystem called USB Raw Gadget (I don't mind changing the name to something else if there are better ideas). This is what currently being used to enable coverage-buided USB fuzzing with syzkaller: https://github.com/google/syzkaller/blob/master/docs/linux/external_fuzzing_usb.md Initially I was using GadgetFS (together with the Dummy HCD/UDC module) to perform emulation of USB devices for fuzzing, but later switched to a custom written interface. The incentive to implement a different interface was to provide a somewhat raw and direct access to the USB Gadget layer for the userspace, where every USB request is passed to the userspace to get a response. See documentation for the list of differences between Raw Gadget and GadgetFS. This patchset has been pushed to the public Linux kernel Gerrit instance: https://linux-review.googlesource.com/c/linux/kernel/git/torvalds/linux/+/2144 Andrey Konovalov (1): usb: gadget: add raw-gadget interface Documentation/usb/index.rst | 1 + Documentation/usb/raw-gadget.rst | 60 ++ drivers/usb/gadget/Kconfig | 9 + drivers/usb/gadget/Makefile | 2 + drivers/usb/gadget/raw.c | 1150 +++++++++++++++++++++++++++ include/uapi/linux/usb/raw_gadget.h | 164 ++++ 6 files changed, 1386 insertions(+) create mode 100644 Documentation/usb/raw-gadget.rst create mode 100644 drivers/usb/gadget/raw.c create mode 100644 include/uapi/linux/usb/raw_gadget.h -- 2.24.0.rc1.363.gb1bccd3e3d-goog