diff options
Diffstat (limited to 'drivers/firewire/core-transaction.c')
| -rw-r--r-- | drivers/firewire/core-transaction.c | 19 | 
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index da628c72a46..842739df23e 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c @@ -218,12 +218,15 @@ static void fw_fill_request(struct fw_packet *packet, int tcode, int tlabel,  		packet->header_length = 16;  		packet->payload_length = 0;  		break; + +	default: +		WARN(1, KERN_ERR "wrong tcode %d", tcode);  	}   common:  	packet->speed = speed;  	packet->generation = generation;  	packet->ack = 0; -	packet->payload_bus = 0; +	packet->payload_mapped = false;  }  /** @@ -595,11 +598,10 @@ void fw_fill_response(struct fw_packet *response, u32 *request_header,  		break;  	default: -		BUG(); -		return; +		WARN(1, KERN_ERR "wrong tcode %d", tcode);  	} -	response->payload_bus = 0; +	response->payload_mapped = false;  }  EXPORT_SYMBOL(fw_fill_response); @@ -810,8 +812,7 @@ static void handle_topology_map(struct fw_card *card, struct fw_request *request  		int speed, unsigned long long offset,  		void *payload, size_t length, void *callback_data)  { -	int i, start, end; -	__be32 *map; +	int start;  	if (!TCODE_IS_READ_REQUEST(tcode)) {  		fw_send_response(card, request, RCODE_TYPE_ERROR); @@ -824,11 +825,7 @@ static void handle_topology_map(struct fw_card *card, struct fw_request *request  	}  	start = (offset - topology_map_region.start) / 4; -	end = start + length / 4; -	map = payload; - -	for (i = 0; i < length / 4; i++) -		map[i] = cpu_to_be32(card->topology_map[start + i]); +	memcpy(payload, &card->topology_map[start], length);  	fw_send_response(card, request, RCODE_COMPLETE);  }  |