Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753334AbdFMMVM (ORCPT ); Tue, 13 Jun 2017 08:21:12 -0400 Received: from mail-yw0-f182.google.com ([209.85.161.182]:33003 "EHLO mail-yw0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752369AbdFMMVK (ORCPT ); Tue, 13 Jun 2017 08:21:10 -0400 MIME-Version: 1.0 From: Andrey Konovalov Date: Tue, 13 Jun 2017 14:21:08 +0200 Message-ID: Subject: gadgetfs: how to wait for USB device initialization? To: Felipe Balbi , Greg Kroah-Hartman , Alan Stern , Kees Cook , Andrew Morton , Andrey Konovalov , Elena Reshetova , USB list , LKML Cc: syzkaller , Dmitry Vyukov , Kostya Serebryany Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 734 Lines: 24 Hi! I'm trying to use gadgetfs to fuzz USB device drivers by simply connecting random devices for now. What I want to achieve right now is the following: 1. mount gadgetfs 2. emulate connection of a new USB device 3. wait for the device to finish initializing 4. unmount gadgetfs 5. goto 1 The question is how do I wait for the device to finish initializing (the corresponding USB driver to finish probing?) before unmounting gadgetfs? As I understand, when I write device description to "/dev/gadget/dummy_udc" the initialization happens asynchronously after writing is done. To mount and unmount gadgetfs right now I do: mount("none", "/dev/gadget", "gadgetfs", 0, NULL) umount2("/dev/gadget", MNT_FORCE | MNT_DETACH) Thanks!