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/

Reply via email to