Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932407AbcLLWEf (ORCPT ); Mon, 12 Dec 2016 17:04:35 -0500 Received: from iolanthe.rowland.org ([192.131.102.54]:49958 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S932322AbcLLWEd (ORCPT ); Mon, 12 Dec 2016 17:04:33 -0500 Date: Mon, 12 Dec 2016 17:04:32 -0500 (EST) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Dmitry Vyukov cc: Andrey Konovalov , Greg Kroah-Hartman , USB list , LKML , Kostya Serebryany , syzkaller Subject: Re: usb/core: warning in usb_create_ep_devs/sysfs_create_dir_ns In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1773 Lines: 45 On Mon, 12 Dec 2016, Alan Stern wrote: > On Mon, 12 Dec 2016, Dmitry Vyukov wrote: > > > On Mon, Dec 12, 2016 at 10:05 PM, Alan Stern wrote: > > > On Mon, 12 Dec 2016, Andrey Konovalov wrote: > > > > > >> Hi! > > >> > > >> While running the syzkaller fuzzer I've got the following error report. > > >> > > >> On commit 3c49de52d5647cda8b42c4255cf8a29d1e22eff5 (Dev 2). > > >> > > >> WARNING: CPU: 2 PID: 865 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x8a/0xa0 > > >> gadgetfs: disconnected > > >> sysfs: cannot create duplicate filename > > >> '/devices/platform/dummy_hcd.0/usb2/2-1/2-1:64.0/ep_05' > > >> Kernel panic - not syncing: panic_on_warn set ... > > > > > > I suppose we could check for USB devices that claim to have two > > > endpoints with the same address. But is it really worthwhile? A > > > kernel warning isn't so bad when you're dealing with buggy device > > > firmware. > > > > We need a clear distinction between what is a bug in kernel source > > code and what is incorrect user-space code. Otherwise no automated > > testing is possible. WARNING means bug in kernel source code. > > I don't necessarily agree with that. Is it documented anywhere? > > > If it is > > not a bug in kernel source code, then it must not produce a WARNING. What about a memory allocation failure? The memory management part of the kernel produces a WARNING message if an allocation fails and the caller did not specify __GFP_NOWARN. There is no way for a driver to guarantee that a memory allocation request will succeed -- failure is always an option. But obviously memory allocation failures are not bugs in the kernel. Are you saying that mm/page_alloc.c:warn_alloc() should produce something other than a WARNING? Alan Stern