diff options
| author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2013-03-08 10:43:25 +0900 | 
|---|---|---|
| committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2013-03-13 16:11:11 +0100 | 
| commit | f2090594dd28c033e0a9a267240ffca6d5afbd84 (patch) | |
| tree | 779f4ed97ff7f574806418e10f8c6366831ccafa /drivers/firewire/net.c | |
| parent | f60bac4bc9f8c6b20b27a2be210a69e2f256f0a5 (diff) | |
| download | olio-linux-3.10-f2090594dd28c033e0a9a267240ffca6d5afbd84.tar.xz olio-linux-3.10-f2090594dd28c033e0a9a267240ffca6d5afbd84.zip  | |
firewire net: Omit checking dev->broadcast_rcv_context in fwnet_broadcast_start().
dev->broadcast_rcv_context is always non-NULL if dev->broadcast_state is
not FWNET_BROADCAST_ERROR.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/net.c')
| -rw-r--r-- | drivers/firewire/net.c | 57 | 
1 files changed, 26 insertions, 31 deletions
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index efed4a65fb0..d8cb6ac3104 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c @@ -1154,6 +1154,7 @@ static int fwnet_broadcast_start(struct fwnet_device *dev)  	unsigned max_receive;  	struct fw_iso_packet packet;  	unsigned long offset; +	void **ptrptr;  	unsigned u;  	if (dev->broadcast_state != FWNET_BROADCAST_ERROR) @@ -1162,42 +1163,36 @@ static int fwnet_broadcast_start(struct fwnet_device *dev)  	max_receive = 1U << (dev->card->max_receive + 1);  	num_packets = (FWNET_ISO_PAGE_COUNT * PAGE_SIZE) / max_receive; -	if (!dev->broadcast_rcv_context) { -		void **ptrptr; - -		context = fw_iso_context_create(dev->card, -		    FW_ISO_CONTEXT_RECEIVE, IEEE1394_BROADCAST_CHANNEL, -		    dev->card->link_speed, 8, fwnet_receive_broadcast, dev); -		if (IS_ERR(context)) { -			retval = PTR_ERR(context); -			goto failed_context_create; -		} +	context = fw_iso_context_create(dev->card, FW_ISO_CONTEXT_RECEIVE, +					IEEE1394_BROADCAST_CHANNEL, +					dev->card->link_speed, 8, +					fwnet_receive_broadcast, dev); +	if (IS_ERR(context)) { +		retval = PTR_ERR(context); +		goto failed_context_create; +	} -		retval = fw_iso_buffer_init(&dev->broadcast_rcv_buffer, -		    dev->card, FWNET_ISO_PAGE_COUNT, DMA_FROM_DEVICE); -		if (retval < 0) -			goto failed_buffer_init; +	retval = fw_iso_buffer_init(&dev->broadcast_rcv_buffer, dev->card, +				    FWNET_ISO_PAGE_COUNT, DMA_FROM_DEVICE); +	if (retval < 0) +		goto failed_buffer_init; -		ptrptr = kmalloc(sizeof(void *) * num_packets, GFP_KERNEL); -		if (!ptrptr) { -			retval = -ENOMEM; -			goto failed_ptrs_alloc; -		} +	ptrptr = kmalloc(sizeof(void *) * num_packets, GFP_KERNEL); +	if (!ptrptr) { +		retval = -ENOMEM; +		goto failed_ptrs_alloc; +	} -		dev->broadcast_rcv_buffer_ptrs = ptrptr; -		for (u = 0; u < FWNET_ISO_PAGE_COUNT; u++) { -			void *ptr; -			unsigned v; +	dev->broadcast_rcv_buffer_ptrs = ptrptr; +	for (u = 0; u < FWNET_ISO_PAGE_COUNT; u++) { +		void *ptr; +		unsigned v; -			ptr = kmap(dev->broadcast_rcv_buffer.pages[u]); -			for (v = 0; v < num_packets / FWNET_ISO_PAGE_COUNT; v++) -				*ptrptr++ = (void *) -						((char *)ptr + v * max_receive); -		} -		dev->broadcast_rcv_context = context; -	} else { -		context = dev->broadcast_rcv_context; +		ptr = kmap(dev->broadcast_rcv_buffer.pages[u]); +		for (v = 0; v < num_packets / FWNET_ISO_PAGE_COUNT; v++) +			*ptrptr++ = (void *) ((char *)ptr + v * max_receive);  	} +	dev->broadcast_rcv_context = context;  	packet.payload_length = max_receive;  	packet.interrupt = 1;  |