On Friday 19 May 2006 04:25, Brice Goglin wrote:
dev_mc_upload() from net/core/dev_mcast.c does
spin_lock_bh(&dev->xmit_lock);
__dev_mc_upload(dev);
which calls dev->set_multicast_list(), which is
myri10ge_set_multicast_list()
which calls myri10ge_change_promisc
which calls myri10ge_send_cmd
Hmm, if that is the only path where you call it, it may be
helpful to change myri10ge_change_promisc to call a special
atomic version of myri10ge_send_cmd then, while all others
use the regular version, which you can then convert to
do msleep as well.
Arnd <><