From: Felipe Balbi > Sent: 24 January 2017 10:50 > David Laight <David.Laight@xxxxxxxxxx> writes: > > From: Of Vincent Pelletier > >> Sent: 23 January 2017 14:41 > >> It is allowed by the USB specification to enabled same-address, opposite- > >> direction endpoints simultaneously, which means 30 non-zero endpoints > >> are allowed. So double eps_addrmap length to 30. > >> The original code only accepted 14 descriptors out of a likely intended 15 > >> (as there are 15 endpoint addresses, ignoring direction), because the first > >> eps_addrmap entry is unused (it is a placeholder for endpoint zero). So > >> increase eps_addrmap length by one to 31. > >> > >> Signed-off-by: Vincent Pelletier <plr.vincent@xxxxxxxxx> > >> --- > >> drivers/usb/gadget/function/f_fs.c | 2 +- > >> drivers/usb/gadget/function/u_fs.h | 3 ++- > >> 2 files changed, 3 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > >> index 5c91a6f4613b..c46666364c87 100644 > >> --- a/drivers/usb/gadget/function/f_fs.c > >> +++ b/drivers/usb/gadget/function/f_fs.c > >> @@ -2101,7 +2101,7 @@ static int __ffs_data_do_entity(enum ffs_entity_type type, > >> case FFS_ENDPOINT: > >> d = (void *)desc; > >> helper->eps_count++; > >> - if (helper->eps_count >= 15) > >> + if (helper->eps_count >= FFS_MAX_EPS_COUNT) > > > > Use ARRAY_COUNT(helper->eps_addrmap) > > what's the benefit here? We have a macro that defines the size of the > array. ARRAY_SIZE() is useful when we don't know the size of the array > ahead of time ;-) It saves you having to check that the array is defined with the same constant as is used in the test. David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html