aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-31 22:07:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-31 22:07:42 -0400
commit3e9a97082fa639394e905e1fc4a0a7f719ca7644 (patch)
tree9985cfa26e0597128eae03a2ee7e4614efea571f /net/core/dev.c
parent941c8726e4e737e74d418ccec3d8e7b946a65541 (diff)
parentd2e7c96af1e54b507ae2a6a7dd2baf588417a7e5 (diff)
Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random
Pull random subsystem patches from Ted Ts'o: "This patch series contains a major revamp of how we collect entropy from interrupts for /dev/random and /dev/urandom. The goal is to addresses weaknesses discussed in the paper "Mining your Ps and Qs: Detection of Widespread Weak Keys in Network Devices", by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J. Alex Halderman, which will be published in the Proceedings of the 21st Usenix Security Symposium, August 2012. (See https://factorable.net for more information and an extended version of the paper.)" Fix up trivial conflicts due to nearby changes in drivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c} * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits) random: mix in architectural randomness in extract_buf() dmi: Feed DMI table to /dev/random driver random: Add comment to random_initialize() random: final removal of IRQF_SAMPLE_RANDOM um: remove IRQF_SAMPLE_RANDOM which is now a no-op sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op ...
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 0ebaea16632f..c8569f826b71 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1172,6 +1172,7 @@ static int __dev_open(struct net_device *dev)
1172 net_dmaengine_get(); 1172 net_dmaengine_get();
1173 dev_set_rx_mode(dev); 1173 dev_set_rx_mode(dev);
1174 dev_activate(dev); 1174 dev_activate(dev);
1175 add_device_randomness(dev->dev_addr, dev->addr_len);
1175 } 1176 }
1176 1177
1177 return ret; 1178 return ret;
@@ -4801,6 +4802,7 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)
4801 err = ops->ndo_set_mac_address(dev, sa); 4802 err = ops->ndo_set_mac_address(dev, sa);
4802 if (!err) 4803 if (!err)
4803 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); 4804 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
4805 add_device_randomness(dev->dev_addr, dev->addr_len);
4804 return err; 4806 return err;
4805} 4807}
4806EXPORT_SYMBOL(dev_set_mac_address); 4808EXPORT_SYMBOL(dev_set_mac_address);
@@ -5579,6 +5581,7 @@ int register_netdevice(struct net_device *dev)
5579 dev_init_scheduler(dev); 5581 dev_init_scheduler(dev);
5580 dev_hold(dev); 5582 dev_hold(dev);
5581 list_netdevice(dev); 5583 list_netdevice(dev);
5584 add_device_randomness(dev->dev_addr, dev->addr_len);
5582 5585
5583 /* Notify protocols, that a new device appeared. */ 5586 /* Notify protocols, that a new device appeared. */
5584 ret = call_netdevice_notifiers(NETDEV_REGISTER, dev); 5587 ret = call_netdevice_notifiers(NETDEV_REGISTER, dev);