hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/soc/ux500/ux500-soc-id.c
....@@ -167,20 +167,18 @@
167167 static const char *db8500_read_soc_id(struct device_node *backupram)
168168 {
169169 void __iomem *base;
170
- void __iomem *uid;
171170 const char *retstr;
171
+ u32 uid[5];
172172
173173 base = of_iomap(backupram, 0);
174174 if (!base)
175175 return NULL;
176
- uid = base + 0x1fc0;
176
+ memcpy_fromio(uid, base + 0x1fc0, sizeof(uid));
177177
178178 /* Throw these device-specific numbers into the entropy pool */
179
- add_device_randomness(uid, 0x14);
179
+ add_device_randomness(uid, sizeof(uid));
180180 retstr = kasprintf(GFP_KERNEL, "%08x%08x%08x%08x%08x",
181
- readl((u32 *)uid+0),
182
- readl((u32 *)uid+1), readl((u32 *)uid+2),
183
- readl((u32 *)uid+3), readl((u32 *)uid+4));
181
+ uid[0], uid[1], uid[2], uid[3], uid[4]);
184182 iounmap(base);
185183 return retstr;
186184 }