Re: [PATCH] hidraw: correctly deallocate memory on device disconnect

From: Peter Wu
Date: Tue Aug 20 2013 - 10:14:29 EST


On Friday 09 August 2013 11:31:15 Jiri Kosina wrote:
> On Mon, 22 Jul 2013, Manoj Chourasia wrote:
> > This is mail is in regard to your commit for hidaw devices. We were
> > seeing kernel crashes while connect and disconnect a hidraw device and
> > we were hitting rb tree corruption in vmalloc and kernel was crashing
> > because of null pointer de-reference. Later we figure out that was
> > because the hid device disconnect is freeing memory which later got
> > access by hidraw_read and hid_write.
>
> Now applied, thanks Manoj, thanks Peter.

I just noticed an issue with this patch, after playing with some receivers I
saw 8 hidraw device nodes. Every USB receiver creates two hidraw nodes, one
for the receiver and one for the paired device.

UPower seems to keep the file descriptor open which prevents the hidraw device
from being removed. Shouldn't the implementation of hidraw be changed to
separate open file descriptors from the actual HID devices? That should allow
/dev/hidrawX devices to get removed whenever a HID device is gone.

Regards,
Peter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/