Skip to contentSkip to conversation

firewire: core: feed /dev/random with devices' GUIDs

PATCH Stefan Richter 2 participants 2 messages Aug 12, 2012 – Aug 13, 2012 1 message not in the archive Firewire

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
Quoted 4 lines · On Aug 12 Clemens Ladisch wrote:

Send the GUIDs of newly registered controllers and devices to the /dev/random driver to help seed its pools.

This looks good to me, almost. Isn't the call in fw_card_add redundant? The local node's fw_device instance initializer feeds the same GUID, although a little bit later.

(Added CC: lkml and Theodore because I am not overly familiar with this matter.)

Quoted 45 lines
---
 drivers/firewire/core-card.c   |    3 +++
 drivers/firewire/core-device.c |    3 +++
 2 files changed, 6 insertions(+), 0 deletions(-)

based on 3.6-rc1

drivers/firewire/core-card.c +3 -0
@@ -29,6 +29,7 @@
 #include <linux/list.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/random.h>
 #include <linux/spinlock.h>
 #include <linux/workqueue.h>
 
@@ -570,6 +571,8 @@ int fw_card_add(struct fw_card *card,
 	card->link_speed = link_speed;
 	card->guid = guid;
 
+	add_device_randomness(&guid, sizeof(guid));
+
 	mutex_lock(&card_mutex);
 
 	generate_config_rom(card, tmp_config_rom);
drivers/firewire/core-device.c +3 -0
@@ -32,6 +32,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/random.h>
 #include <linux/rwsem.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
@@ -1066,6 +1067,8 @@ static void fw_device_init(struct work_struct *work)
 		device->config_rom_retries = 0;
 
 		set_broadcast_channel(device, device->generation);
+
+		add_device_randomness(&device->config_rom[3], 8);
 	}
 
 	/*
Signature · 3 lines
Stefan Richter
-=====-===-- =--- -==--
http://arcgraph.de/sr/
#2 lore raw
Quoted 7 lines · Stefan Richter
Quoted 2 lines · On Aug 12 Clemens Ladisch wrote:

Send the GUIDs of newly registered controllers and devices to the /dev/random driver to help seed its pools.

This looks good to me, almost. Isn't the call in fw_card_add redundant? The local node's fw_device instance initializer feeds the same GUID, although a little bit later.

Oops, indeed. Just drop that hunk:

--8<---------------------------------------------------------------->8--
firewire: core: feed /dev/random with devices' GUIDs

Send the GUIDs of newly registered controllers and devices to the /dev/random driver to help seed its pools.

---
 drivers/firewire/core-device.c |    3 +++
 1 file changed, 3 insertions(+), 0 deletions(-)
drivers/firewire/core-device.c +3 -0
@@ -32,6 +32,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/random.h>
 #include <linux/rwsem.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
@@ -1066,6 +1067,8 @@ static void fw_device_init(struct work_struct *work)
 		device->config_rom_retries = 0;
 
 		set_broadcast_channel(device, device->generation);
+
+		add_device_randomness(&device->config_rom[3], 8);
 	}
 
 	/*