| From b04b3156a20d395a7faa8eed98698d1e17a36000 Mon Sep 17 00:00:00 2001 |
| From: Theodore Ts'o <tytso@mit.edu> |
| Date: Wed, 4 Jul 2012 11:22:20 -0400 |
| Subject: usb: feed USB device information to the /dev/random driver |
| |
| From: Theodore Ts'o <tytso@mit.edu> |
| |
| commit b04b3156a20d395a7faa8eed98698d1e17a36000 upstream. |
| |
| Send the USB device's serial, product, and manufacturer strings to the |
| /dev/random driver to help seed its pools. |
| |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Acked-by: Greg KH <greg@kroah.com> |
| Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/core/hub.c | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| --- a/drivers/usb/core/hub.c |
| +++ b/drivers/usb/core/hub.c |
| @@ -24,6 +24,7 @@ |
| #include <linux/kthread.h> |
| #include <linux/mutex.h> |
| #include <linux/freezer.h> |
| +#include <linux/random.h> |
| |
| #include <asm/uaccess.h> |
| #include <asm/byteorder.h> |
| @@ -1902,6 +1903,14 @@ int usb_new_device(struct usb_device *ud |
| /* Tell the world! */ |
| announce_device(udev); |
| |
| + if (udev->serial) |
| + add_device_randomness(udev->serial, strlen(udev->serial)); |
| + if (udev->product) |
| + add_device_randomness(udev->product, strlen(udev->product)); |
| + if (udev->manufacturer) |
| + add_device_randomness(udev->manufacturer, |
| + strlen(udev->manufacturer)); |
| + |
| device_enable_async_suspend(&udev->dev); |
| /* Register the device. The device driver is responsible |
| * for configuring the device and invoking the add-device |