Commit 02160d32 authored by David S. Miller's avatar David S. Miller

Merge http://linux-mh.bkbits.net/bluetooth-2.6

into nuts.davemloft.net:/disk1/BK/net-2.6
parents d9fde4ea 1317c324
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
#define URB_ZERO_PACKET 0 #define URB_ZERO_PACKET 0
#endif #endif
#define VERSION "2.6" #define VERSION "2.7"
static struct usb_driver hci_usb_driver; static struct usb_driver hci_usb_driver;
...@@ -98,6 +98,9 @@ static struct usb_device_id blacklist_ids[] = { ...@@ -98,6 +98,9 @@ static struct usb_device_id blacklist_ids[] = {
/* Broadcom BCM2035 */ /* Broadcom BCM2035 */
{ USB_DEVICE(0x0a5c, 0x200a), .driver_info = HCI_RESET }, { USB_DEVICE(0x0a5c, 0x200a), .driver_info = HCI_RESET },
/* ISSC Bluetooth Adapter v3.1 */
{ USB_DEVICE(0x1131, 0x1001), .driver_info = HCI_RESET },
/* Digianswer device */ /* Digianswer device */
{ USB_DEVICE(0x08fd, 0x0001), .driver_info = HCI_DIGIANSWER }, { USB_DEVICE(0x08fd, 0x0001), .driver_info = HCI_DIGIANSWER },
......
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
#define BT_DBG(D...) #define BT_DBG(D...)
#endif #endif
#define VERSION "1.0" #define VERSION "1.2"
static LIST_HEAD(bnep_session_list); static LIST_HEAD(bnep_session_list);
static DECLARE_RWSEM(bnep_session_sem); static DECLARE_RWSEM(bnep_session_sem);
...@@ -113,6 +113,21 @@ static int bnep_send_rsp(struct bnep_session *s, u8 ctrl, u16 resp) ...@@ -113,6 +113,21 @@ static int bnep_send_rsp(struct bnep_session *s, u8 ctrl, u16 resp)
return bnep_send(s, &rsp, sizeof(rsp)); return bnep_send(s, &rsp, sizeof(rsp));
} }
#ifdef CONFIG_BT_BNEP_PROTO_FILTER
static inline void bnep_set_default_proto_filter(struct bnep_session *s)
{
/* (IPv4, ARP) */
s->proto_filter[0].start = htons(0x0800);
s->proto_filter[0].end = htons(0x0806);
/* (RARP, AppleTalk) */
s->proto_filter[1].start = htons(0x8035);
s->proto_filter[1].end = htons(0x80F3);
/* (IPX, IPv6) */
s->proto_filter[2].start = htons(0x8137);
s->proto_filter[2].end = htons(0x86DD);
}
#endif
static int bnep_ctrl_set_netfilter(struct bnep_session *s, u16 *data, int len) static int bnep_ctrl_set_netfilter(struct bnep_session *s, u16 *data, int len)
{ {
int n; int n;
...@@ -141,9 +156,13 @@ static int bnep_ctrl_set_netfilter(struct bnep_session *s, u16 *data, int len) ...@@ -141,9 +156,13 @@ static int bnep_ctrl_set_netfilter(struct bnep_session *s, u16 *data, int len)
BT_DBG("proto filter start %d end %d", BT_DBG("proto filter start %d end %d",
f[i].start, f[i].end); f[i].start, f[i].end);
} }
if (i < BNEP_MAX_PROTO_FILTERS) if (i < BNEP_MAX_PROTO_FILTERS)
memset(f + i, 0, sizeof(*f)); memset(f + i, 0, sizeof(*f));
if (n == 0)
bnep_set_default_proto_filter(s);
bnep_send_rsp(s, BNEP_FILTER_NET_TYPE_RSP, BNEP_SUCCESS); bnep_send_rsp(s, BNEP_FILTER_NET_TYPE_RSP, BNEP_SUCCESS);
} else { } else {
bnep_send_rsp(s, BNEP_FILTER_NET_TYPE_RSP, BNEP_FILTER_LIMIT_REACHED); bnep_send_rsp(s, BNEP_FILTER_NET_TYPE_RSP, BNEP_FILTER_LIMIT_REACHED);
...@@ -544,21 +563,12 @@ int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock) ...@@ -544,21 +563,12 @@ int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock)
/* Set default mc filter */ /* Set default mc filter */
set_bit(bnep_mc_hash(dev->broadcast), (ulong *) &s->mc_filter); set_bit(bnep_mc_hash(dev->broadcast), (ulong *) &s->mc_filter);
#endif #endif
#ifdef CONFIG_BT_BNEP_PROTO_FILTER #ifdef CONFIG_BT_BNEP_PROTO_FILTER
/* Set default protocol filter */ /* Set default protocol filter */
bnep_set_default_proto_filter(s);
/* (IPv4, ARP) */
s->proto_filter[0].start = htons(0x0800);
s->proto_filter[0].end = htons(0x0806);
/* (RARP, AppleTalk) */
s->proto_filter[1].start = htons(0x8035);
s->proto_filter[1].end = htons(0x80F3);
/* (IPX, IPv6) */
s->proto_filter[2].start = htons(0x8137);
s->proto_filter[2].end = htons(0x86DD);
#endif #endif
err = register_netdev(dev); err = register_netdev(dev);
if (err) { if (err) {
goto failed; goto failed;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment