diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2400pci.c')
| -rw-r--r-- | drivers/net/wireless/rt2x00/rt2400pci.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c index a2d2bc2c7b3..221beaaa83f 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.c +++ b/drivers/net/wireless/rt2x00/rt2400pci.c @@ -1185,8 +1185,14 @@ static void rt2400pci_write_beacon(struct queue_entry *entry,  	rt2x00_set_field32(®, CSR14_BEACON_GEN, 0);  	rt2x00pci_register_write(rt2x00dev, CSR14, reg); -	rt2x00queue_map_txskb(entry); - +	if (rt2x00queue_map_txskb(entry)) { +		ERROR(rt2x00dev, "Fail to map beacon, aborting\n"); +		goto out; +	} +	/* +	 * Enable beaconing again. +	 */ +	rt2x00_set_field32(®, CSR14_BEACON_GEN, 1);  	/*  	 * Write the TX descriptor for the beacon.  	 */ @@ -1196,7 +1202,7 @@ static void rt2400pci_write_beacon(struct queue_entry *entry,  	 * Dump beacon to userspace through debugfs.  	 */  	rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_BEACON, entry->skb); - +out:  	/*  	 * Enable beaconing again.  	 */  |