Switch bluetooth address to right type and use bacmp to replace explicit checks for zero addresses. Signed-off-by: Pavel Machek <pa...@ucw.cz>
diff --git a/drivers/staging/nokia_h4p/hci_h4p.h b/drivers/staging/nokia_h4p/hci_h4p.h index 99c4da6..76eaaaa 100644 --- a/drivers/staging/nokia_h4p/hci_h4p.h +++ b/drivers/staging/nokia_h4p/hci_h4p.h @@ -77,7 +77,7 @@ struct hci_h4p_info { unsigned long rx_state; unsigned long garbage_bytes; - u8 bd_addr[6]; + bdaddr_t bd_addr; struct sk_buff_head *fw_q; int pm_enabled; diff --git a/drivers/staging/nokia_h4p/nokia_core.c b/drivers/staging/nokia_h4p/nokia_core.c index 775e1d0..79d8b01 100644 --- a/drivers/staging/nokia_h4p/nokia_core.c +++ b/drivers/staging/nokia_h4p/nokia_core.c @@ -993,7 +993,7 @@ static ssize_t hci_h4p_store_bdaddr(struct device *dev, for (i = 0; i < 6; i++) { if (bdaddr[i] > 0xff) return -EINVAL; - info->bd_addr[i] = bdaddr[i] & 0xff; + info->bd_addr.b[i] = bdaddr[i] & 0xff; } return count; @@ -1004,7 +1004,7 @@ static ssize_t hci_h4p_show_bdaddr(struct device *dev, { struct hci_h4p_info *info = dev_get_drvdata(dev); - return sprintf(buf, "%pMR\n", info->bd_addr); + return sprintf(buf, "%pMR\n", info->bd_addr.b); } static DEVICE_ATTR(bdaddr, S_IRUGO | S_IWUSR, hci_h4p_show_bdaddr, diff --git a/drivers/staging/nokia_h4p/nokia_fw-bcm.c b/drivers/staging/nokia_h4p/nokia_fw-bcm.c index 14fe3ae..054a78b 100644 --- a/drivers/staging/nokia_h4p/nokia_fw-bcm.c +++ b/drivers/staging/nokia_h4p/nokia_fw-bcm.c @@ -30,17 +30,17 @@ static int hci_h4p_bcm_set_bdaddr(struct hci_h4p_info *info, { int i; static const u8 nokia_oui[3] = {0x00, 0x1f, 0xdf}; - int not_valid = !bacmp(info->bd_addr, BDADDR_ANY); + int not_valid = !bacmp(&info->bd_addr, BDADDR_ANY); if (not_valid) { dev_info(info->dev, "Valid bluetooth address not found, setting some random\n"); /* When address is not valid, use some random but Nokia MAC */ - memcpy(info->bd_addr, nokia_oui, 3); - get_random_bytes(info->bd_addr + 3, 3); + memcpy(info->bd_addr.b, nokia_oui, 3); + get_random_bytes(info->bd_addr.b + 3, 3); } for (i = 0; i < 6; i++) - skb->data[9 - i] = info->bd_addr[i]; + skb->data[9 - i] = info->bd_addr.b[i]; return 0; } diff --git a/drivers/staging/nokia_h4p/nokia_fw-csr.c b/drivers/staging/nokia_h4p/nokia_fw-csr.c index 925ed86d0..a2c58c4 100644 --- a/drivers/staging/nokia_h4p/nokia_fw-csr.c +++ b/drivers/staging/nokia_h4p/nokia_fw-csr.c @@ -48,7 +48,7 @@ int hci_h4p_bc4_send_fw(struct hci_h4p_info *info, static const u8 nokia_oui[3] = {0x00, 0x19, 0x4F}; struct sk_buff *skb; unsigned int offset; - int retries, count, i, not_valid; + int retries, count, not_valid; unsigned long flags; info->fw_error = 0; @@ -65,21 +65,21 @@ int hci_h4p_bc4_send_fw(struct hci_h4p_info *info, skb->data[offset + 1] = 0x00; skb->data[offset + 5] = 0x00; - not_valid = !bacmp(info->bd_addr, BDADDR_ANY); + not_valid = !bacmp(&info->bd_addr, BDADDR_ANY); if (not_valid) { dev_info(info->dev, "Valid bluetooth address not found, setting some random\n"); /* When address is not valid, use some random */ - memcpy(info->bd_addr, nokia_oui, 3); - get_random_bytes(info->bd_addr + 3, 3); + memcpy(info->bd_addr.b, nokia_oui, 3); + get_random_bytes(info->bd_addr.b + 3, 3); } - skb->data[offset + 7] = info->bd_addr[0]; - skb->data[offset + 6] = info->bd_addr[1]; - skb->data[offset + 4] = info->bd_addr[2]; - skb->data[offset + 0] = info->bd_addr[3]; - skb->data[offset + 3] = info->bd_addr[4]; - skb->data[offset + 2] = info->bd_addr[5]; + skb->data[offset + 7] = info->bd_addr.b[0]; + skb->data[offset + 6] = info->bd_addr.b[1]; + skb->data[offset + 4] = info->bd_addr.b[2]; + skb->data[offset + 0] = info->bd_addr.b[3]; + skb->data[offset + 3] = info->bd_addr.b[4]; + skb->data[offset + 2] = info->bd_addr.b[5]; } for (count = 1; ; count++) { -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/