On Tue, Feb 05, 2019 at 12:43:29PM +0100, Sebastian Parschauer wrote: > Hi list, > > the ICs for wired USB mice from PixArt Imaging are all around. But they > have a buffer overflow bug if they are not always polled and disconnect > + reconnect periodically on VTs without a user-space driver running. > We add HID_QUIRK_ALWAYS_POLL years after the first bug reports if users > even understand that they have to report a bug for their presumably dead > simple mouse device. > > With the PAN3511 it was rather easy as USB vendor and product ID were > always the same (093a:2510). But with ICs with modifiable USB IDs things > got really complicated for us to catch the affected devices. > > So my idea was to ask PixArt Imaging for fixing the buffer overflow in > their chips for future generations but the USB controller part is not in > their hands. They refer to ODMs (original design manufacturers). So > basically they integrate IP cores and proprietary firmware from another > company. > > In my howto I describe the issue and offer help: > https://github.com/sriemer/fix-linux-mouse > > I think a proper howto is a good way to solve this. And it generated > patches for three mice already as people were linking to it and I found > the mice this way. > > So I kindly ask you to promote the howto and to contribute to it. > > Are there maybe other ways to handle this better? > > Enable HID_QUIRK_ALWAYS_POLL automatically if manufacturer information > is PixArt for USB optical mice? does this issue affect *all* pixart-based mice or just some? if all, then it seems like a reasonable solution. > Enable the gpm service by default? A trivial hack would be to have a udev rule that checks for the Pixart string in the device name and starts a custom systemd service that does nothing but fd = open(device node) while (true) read(fd, buffer, sizeof(buffer)); This should be enough? or does gpm do anything different? Cheers, Peter