The new usb_control_msg_{send|recv}() API provides a more convenient way of using usb_control_msg() in some usecases. Using this, short reads are considered as errors, data can be used off the stack, and the need for the calling function to create a raw usb pipe is eliminated. This patch series aims to update existing instances of usb_control_msg() in drivers/usb/misc/* to usb_control_msg_{send|recv}() appropriately wherever it would be a good fit, and also update the return value checking mechanisms in place (if any), as necessary so nothing breaks. Changes in v4: * Drop all proposed changes to drivers (from v3) where the new API doesn't fit appropriately. * Update commit messages. * Link to v3: https://lore.kernel.org/linux-usb/YBF9exziI12OCSuA@xxxxxxxxxxxxxxxxxxxx/T/#m269ab33b52331c134bbbc77d13cb65c2194a6093 Changes in v3: * idmouse, emi26 and emi62 are left unchanged, and are not updated. -> since control transfers in idmouse are without a data stage, there's no real advantage in using the new helper here. -> in emi26, and emi62, FW_LOAD_SIZE = 1048 (> 1024). Thus, if we try to use the new helpers, it will result in either build warnings, or memory being allocated. * Link to v2: https://lore.kernel.org/linux-usb/20201130013103.2580467-1-anant.thazhemadam@xxxxxxxxx/T/ Changes in v2: * Buffer variables that were previously dynamically allocated are no longer dynamically allocated unless they have a variable length (since that threw a warning). * Link to v1: https://lore.kernel.org/linux-usb/20201129160612.1908074-1-anant.thazhemadam@xxxxxxxxx/ Anant Thazhemadam (3): usb: misc: ehset: update to use the usb_control_msg_{send|recv}() API usb: misc: ezusb: update to use usb_control_msg_send() usb: misc: usbsevseg: update to use usb_control_msg_send() drivers/usb/misc/ehset.c | 76 +++++++++++++++--------------------- drivers/usb/misc/ezusb.c | 16 +------- drivers/usb/misc/usbsevseg.c | 60 ++++++++-------------------- 3 files changed, 51 insertions(+), 101 deletions(-) -- 2.25.1