diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2012-10-03 08:26:12 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-10-15 07:53:55 -0400 |
commit | 4040d10a3d44023703f81083bb90a3eb45a39eee (patch) | |
tree | 8c78be2e2a3fed3856e79e2a0a375357c2dfb9f6 /arch/arm/mach-ux500/cpu-db8500.c | |
parent | a3a6c6a3a13c8fc946da86d0314f4c0d013e749d (diff) |
ARM: ux500: add DB serial number to entropy pool
This throws the DB (digital baseband, ASIC) serial number, process
type etc into the entropy pool by way of the device_add_randomness()
call. This should make every device have a unique pool state upon
boot.
Cc: Theodore Tso <tytso@mit.edu>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500/cpu-db8500.c')
-rw-r--r-- | arch/arm/mach-ux500/cpu-db8500.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index bcdfe6b1d45..50202a163e5 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -17,6 +17,8 @@ | |||
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/mfd/abx500/ab8500.h> | 19 | #include <linux/mfd/abx500/ab8500.h> |
20 | #include <linux/platform_data/usb-musb-ux500.h> | ||
21 | #include <linux/random.h> | ||
20 | 22 | ||
21 | #include <asm/pmu.h> | 23 | #include <asm/pmu.h> |
22 | #include <asm/mach/map.h> | 24 | #include <asm/mach/map.h> |
@@ -24,7 +26,6 @@ | |||
24 | #include <mach/hardware.h> | 26 | #include <mach/hardware.h> |
25 | #include <mach/setup.h> | 27 | #include <mach/setup.h> |
26 | #include <mach/devices.h> | 28 | #include <mach/devices.h> |
27 | #include <linux/platform_data/usb-musb-ux500.h> | ||
28 | #include <mach/db8500-regs.h> | 29 | #include <mach/db8500-regs.h> |
29 | 30 | ||
30 | #include "devices-db8500.h" | 31 | #include "devices-db8500.h" |
@@ -187,6 +188,8 @@ static const char *db8500_read_soc_id(void) | |||
187 | { | 188 | { |
188 | void __iomem *uid = __io_address(U8500_BB_UID_BASE); | 189 | void __iomem *uid = __io_address(U8500_BB_UID_BASE); |
189 | 190 | ||
191 | /* Throw these device-specific numbers into the entropy pool */ | ||
192 | add_device_randomness(uid, 0x14); | ||
190 | return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", | 193 | return kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x", |
191 | readl((u32 *)uid+1), | 194 | readl((u32 *)uid+1), |
192 | readl((u32 *)uid+1), readl((u32 *)uid+2), | 195 | readl((u32 *)uid+1), readl((u32 *)uid+2), |