firewire net: Clear dev->broadcast_rcv_context and dev->broadcast_state after destruc...
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Fri, 8 Mar 2013 01:42:59 +0000 (10:42 +0900)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Wed, 13 Mar 2013 15:11:11 +0000 (16:11 +0100)
Clear dev->broadcast_rcv_context to NULL and set dev->broadcast_state
to FWNET_BROADCAST_ERROR after descruction of broadcast context.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/net.c

index d9b2105f22a0be3595c99e0f24f737390e5749b1..efed4a65fb06577b3000e0e06d0a4b2e04a160c6 100644 (file)
@@ -1626,11 +1626,14 @@ static int fwnet_remove(struct device *_dev)
                fwnet_fifo_stop(dev);
                if (dev->broadcast_rcv_context) {
                        fw_iso_context_stop(dev->broadcast_rcv_context);
+
                        kfree(dev->broadcast_rcv_buffer_ptrs);
                        dev->broadcast_rcv_buffer_ptrs = NULL;
                        fw_iso_buffer_destroy(&dev->broadcast_rcv_buffer,
                                              dev->card);
                        fw_iso_context_destroy(dev->broadcast_rcv_context);
+                       dev->broadcast_rcv_context = NULL;
+                       dev->broadcast_state = FWNET_BROADCAST_ERROR;
                }
                for (i = 0; dev->queued_datagrams && i < 5; i++)
                        ssleep(1);