[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8737tln08x.fsf@nemi.mork.no>
Date: Mon, 25 Jan 2016 16:32:14 +0100
From: Bjørn Mork <bjorn@...k.no>
To: Alan Stern <stern@...land.harvard.edu>
Cc: Emilio López <emilio.lopez@...labora.co.uk>,
<gregkh@...uxfoundation.org>, <kborer@...il.com>,
<k.opasiak@...sung.com>, <reillyg@...omium.org>,
<keescook@...omium.org>, <linux-api@...r.kernel.org>,
<linux-usb@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<jorgelo@...omium.org>, <dan.carpenter@...cle.com>
Subject: Re: [PATCH v2] usb: devio: Add ioctl to disallow detaching kernel USB drivers.
Alan Stern <stern@...land.harvard.edu> writes:
> On Mon, 25 Jan 2016, Bjørn Mork wrote:
>
>> I don't feel much like an expert here, but I can certainly make up an
>> opinion anyway :)
>>
>> Since 64bits kernels allow usb devio with interface numbers up to 63, I
>> guess you need __u64 to avoid limiting the range? Limiting will create
>> all sorts of followup problems, so it's definitely easiest to just go
>> with __u64.
>
> But the Linux USB stack only allows up to 32 interfaces (see
> include/linux/usb.h):
>
> /* this maximum is arbitrary */
> #define USB_MAXINTERFACES 32
Ah, I totally missed that. Thanks
> So there's no point using a 64-bit value.
>
> On the other hand, this value is supposed to be the same size as
> ps->ifclaimed, which is used as an argument to clear_bit(), set_bit(),
> and test_bit(). Those routines require unsigned long.
Maybe the input to these should be clamped to USB_MAXINTERFACES?
Bjørn
Powered by blists - more mailing lists