| From 326de4683b7464c250b8aae8edaf9265eda98eed Mon Sep 17 00:00:00 2001 |
| From: Mark Brown <broonie@opensource.wolfsonmicro.com> |
| Date: Thu, 5 Jul 2012 20:23:21 +0000 |
| Subject: [PATCH] mfd: wm831x: Feed the device UUID into |
| device_add_randomness() |
| |
| commit 27130f0cc3ab97560384da437e4621fc4e94f21c upstream. |
| |
| wm831x devices contain a unique ID value. Feed this into the newly added |
| device_add_randomness() to add some per device seed data to the pool. |
| |
| Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/mfd/wm831x-otp.c b/drivers/mfd/wm831x-otp.c |
| index f742745..b90f3e0 100644 |
| --- a/drivers/mfd/wm831x-otp.c |
| +++ b/drivers/mfd/wm831x-otp.c |
| @@ -18,6 +18,7 @@ |
| #include <linux/bcd.h> |
| #include <linux/delay.h> |
| #include <linux/mfd/core.h> |
| +#include <linux/random.h> |
| |
| #include <linux/mfd/wm831x/core.h> |
| #include <linux/mfd/wm831x/otp.h> |
| @@ -66,6 +67,7 @@ static DEVICE_ATTR(unique_id, 0444, wm831x_unique_id_show, NULL); |
| |
| int wm831x_otp_init(struct wm831x *wm831x) |
| { |
| + char uuid[WM831X_UNIQUE_ID_LEN]; |
| int ret; |
| |
| ret = device_create_file(wm831x->dev, &dev_attr_unique_id); |
| @@ -73,6 +75,12 @@ int wm831x_otp_init(struct wm831x *wm831x) |
| dev_err(wm831x->dev, "Unique ID attribute not created: %d\n", |
| ret); |
| |
| + ret = wm831x_unique_id_read(wm831x, uuid); |
| + if (ret == 0) |
| + add_device_randomness(uuid, sizeof(uuid)); |
| + else |
| + dev_err(wm831x->dev, "Failed to read UUID: %d\n", ret); |
| + |
| return ret; |
| } |
| |
| -- |
| 1.7.12.rc1.1.gbce1580 |
| |