summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <linux-bt.adm@hostme.bitkeeper.com>2002-10-29 05:05:52 -0800
committerMarcel Holtmann <linux-bt.adm@hostme.bitkeeper.com>2002-10-29 05:05:52 -0800
commit10632c9ebbc7a3beed7b8747bc652aec24c84234 (patch)
treea950a8128df82cf507b8f100c8ef49de23e4c321
parent5e5ac463e8665de00e2e9bb2a00917ee2c9343a1 (diff)
parent25d73f23df4f2c4b8fcf25eb92535eaab5b105c7 (diff)
Merge bk://linux.bkbits.net/linux-2.5
into hostme.bitkeeper.com:/ua/repos/l/linux-bt/bt-2.5
-rw-r--r--drivers/bluetooth/hci_bcsp.c8
-rw-r--r--drivers/bluetooth/hci_h4.c8
-rw-r--r--drivers/bluetooth/hci_ldisc.c9
-rw-r--r--drivers/bluetooth/hci_uart.h2
-rw-r--r--drivers/bluetooth/hci_usb.c4
-rw-r--r--drivers/bluetooth/hci_vhci.c4
-rw-r--r--include/net/bluetooth/bluetooth.h2
-rw-r--r--net/bluetooth/af_bluetooth.c8
-rw-r--r--net/bluetooth/bnep/core.c29
-rw-r--r--net/bluetooth/hci_sock.c7
-rw-r--r--net/bluetooth/l2cap.c13
-rw-r--r--net/bluetooth/rfcomm/core.c5
-rw-r--r--net/bluetooth/rfcomm/sock.c5
-rw-r--r--net/bluetooth/rfcomm/tty.c15
-rw-r--r--net/bluetooth/sco.c13
15 files changed, 79 insertions, 53 deletions
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index bfd5401987ec..5ca3185b32c6 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -701,7 +701,13 @@ static struct hci_uart_proto bcsp = {
int bcsp_init(void)
{
- return hci_uart_register_proto(&bcsp);
+ int err = hci_uart_register_proto(&bcsp);
+ if (!err)
+ BT_INFO("HCI BCSP protocol initialized");
+ else
+ BT_ERR("HCI BCSP protocol registration failed");
+
+ return err;
}
int bcsp_deinit(void)
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
index 412ebefa4418..2bd8cc6a645e 100644
--- a/drivers/bluetooth/hci_h4.c
+++ b/drivers/bluetooth/hci_h4.c
@@ -269,7 +269,13 @@ static struct hci_uart_proto h4p = {
int h4_init(void)
{
- return hci_uart_register_proto(&h4p);
+ int err = hci_uart_register_proto(&h4p);
+ if (!err)
+ BT_INFO("HCI H4 protocol initialized");
+ else
+ BT_ERR("HCI H4 protocol registration failed");
+
+ return err;
}
int h4_deinit(void)
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
index e5196a92b7ba..c69635b693b5 100644
--- a/drivers/bluetooth/hci_ldisc.c
+++ b/drivers/bluetooth/hci_ldisc.c
@@ -344,7 +344,8 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)
if (tty != hu->tty)
return;
- hci_uart_tx_wakeup(hu);
+ if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
+ hci_uart_tx_wakeup(hu);
}
/* hci_uart_tty_room()
@@ -521,9 +522,7 @@ int __init hci_uart_init(void)
static struct tty_ldisc hci_uart_ldisc;
int err;
- BT_INFO("Bluetooth HCI UART driver ver %s Copyright (C) 2000,2001 Qualcomm Inc",
- VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("HCI UART driver ver %s", VERSION);
/* Register the tty discipline */
@@ -541,7 +540,7 @@ int __init hci_uart_init(void)
hci_uart_ldisc.write_wakeup= hci_uart_tty_wakeup;
if ((err = tty_register_ldisc(N_HCI, &hci_uart_ldisc))) {
- BT_ERR("Can't register HCI line discipline (%d)", err);
+ BT_ERR("HCI line discipline registration failed. (%d)", err);
return err;
}
diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h
index acfc9c870e4e..4b6cac7a4a60 100644
--- a/drivers/bluetooth/hci_uart.h
+++ b/drivers/bluetooth/hci_uart.h
@@ -68,7 +68,7 @@ struct hci_uart {
};
/* HCI_UART flag bits */
-#define HCI_UART_PROTO_SET 0x00
+#define HCI_UART_PROTO_SET 0
/* TX states */
#define HCI_UART_SENDING 1
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
index ce6f9da59efc..fdbf387b7577 100644
--- a/drivers/bluetooth/hci_usb.c
+++ b/drivers/bluetooth/hci_usb.c
@@ -805,9 +805,7 @@ int hci_usb_init(void)
{
int err;
- BT_INFO("Bluetooth HCI USB driver ver %s Copyright (C) 2000,2001 Qualcomm Inc",
- VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("HCI USB driver ver %s", VERSION);
if ((err = usb_register(&hci_usb_driver)) < 0)
BT_ERR("Failed to register HCI USB driver");
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index a70eef0fd4d9..b99591b049bc 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -331,9 +331,7 @@ static struct miscdevice hci_vhci_miscdev=
int __init hci_vhci_init(void)
{
- BT_INFO("Bluetooth VHCI driver ver %s Copyright (C) 2000,2001 Qualcomm Inc",
- VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("VHCI driver ver %s", VERSION);
if (misc_register(&hci_vhci_miscdev)) {
BT_ERR("Can't register misc device %d\n", VHCI_MINOR);
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index d8e54c8f4daf..de82c1873153 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -53,7 +53,7 @@
#define SOL_SCO 17
#define SOL_RFCOMM 18
-#define BT_INFO(fmt, arg...) printk(KERN_INFO fmt "\n" , ## arg)
+#define BT_INFO(fmt, arg...) printk(KERN_INFO "Bluetooth: " fmt "\n" , ## arg)
#define BT_DBG(fmt, arg...) printk(KERN_INFO "%s: " fmt "\n" , __FUNCTION__ , ## arg)
#define BT_ERR(fmt, arg...) printk(KERN_ERR "%s: " fmt "\n" , __FUNCTION__ , ## arg)
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
index 9ad9c4454f53..2ab94dc94980 100644
--- a/net/bluetooth/af_bluetooth.c
+++ b/net/bluetooth/af_bluetooth.c
@@ -326,9 +326,7 @@ extern int hci_sock_cleanup(void);
static int __init bt_init(void)
{
- BT_INFO("Bluetooth Core ver %s Copyright (C) 2000,2001 Qualcomm Inc",
- VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("Core ver %s", VERSION);
proc_mkdir("bluetooth", NULL);
@@ -338,12 +336,14 @@ static int __init bt_init(void)
SLAB_HWCACHE_ALIGN, 0, 0);
if (!bt_sock_cache) {
- BT_ERR("Bluetooth socket cache creation failed");
+ BT_ERR("Socket cache creation failed");
return -ENOMEM;
}
sock_register(&bt_sock_family_ops);
+ BT_INFO("HCI device and connection manager initialized");
+
hci_sock_init();
return 0;
}
diff --git a/net/bluetooth/bnep/core.c b/net/bluetooth/bnep/core.c
index 759d6c3b98fc..e15d2603b59f 100644
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
@@ -561,6 +561,8 @@ int bnep_add_connection(struct bnep_conadd_req *req, struct socket *sock)
else
strcpy(dev->name, "bnep%d");
+ memset(dev->broadcast, 0xff, ETH_ALEN);
+
/* This is rx header therefor addresses are swaped.
* ie eh.h_dest is our local address. */
memcpy(s->eh.h_dest, &src, ETH_ALEN);
@@ -701,17 +703,22 @@ int bnep_get_coninfo(struct bnep_coninfo *ci)
}
static int __init bnep_init_module(void)
-{
- BT_INFO("BNEP: BNEP2 ver %s\n"
- "BNEP: Copyright (C) 2002 Inventel\n"
- "BNEP: Written 2001,2002 by\n"
- "BNEP: \tClement Moreau <clement.moreau@inventel.fr> "
- "David Libault <david.libault@inventel.fr>\n"
- "BNEP: Copyright (C) 2002 Maxim Krasnyanskiy <maxk@qualcomm.com>",
- VERSION);
+{
+ char flt[50] = "";
- bnep_sock_init();
+#ifdef CONFIG_BT_BNEP_PROTO_FILTER
+ strcat(flt, "protocol ");
+#endif
+#ifdef CONFIG_BT_BNEP_MC_FILTER
+ strcat(flt, "multicast");
+#endif
+
+ BT_INFO("BNEP (Ethernet Emulation) ver %s", VERSION);
+ if (flt[0])
+ BT_INFO("BNEP filters: %s", flt);
+
+ bnep_sock_init();
return 0;
}
@@ -723,6 +730,6 @@ static void __exit bnep_cleanup_module(void)
module_init(bnep_init_module);
module_exit(bnep_cleanup_module);
-MODULE_DESCRIPTION("BNEP ver " VERSION);
-MODULE_AUTHOR("David Libault <david.libault@inventel.fr> Maxim Krasnyanskiy <maxk@qualcomm.com>");
+MODULE_DESCRIPTION("Bluetooth BNEP ver " VERSION);
+MODULE_AUTHOR("David Libault <david.libault@inventel.fr>, Maxim Krasnyanskiy <maxk@qualcomm.com>");
MODULE_LICENSE("GPL");
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
index 806079f1342b..a5fa6f9726d9 100644
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
@@ -628,18 +628,21 @@ struct notifier_block hci_sock_nblock = {
int hci_sock_init(void)
{
if (bt_sock_register(BTPROTO_HCI, &hci_sock_family_ops)) {
- BT_ERR("Can't register HCI socket");
+ BT_ERR("HCI socket registration failed");
return -EPROTO;
}
hci_register_notifier(&hci_sock_nblock);
+
+ BT_INFO("HCI socket layer initialized");
+
return 0;
}
int hci_sock_cleanup(void)
{
if (bt_sock_unregister(BTPROTO_HCI))
- BT_ERR("Can't unregister HCI socket");
+ BT_ERR("HCI socket unregistration failed");
hci_unregister_notifier(&hci_sock_nblock);
return 0;
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index fa2d10b595e6..b4476eaac0d5 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -2079,19 +2079,20 @@ int __init l2cap_init(void)
int err;
if ((err = bt_sock_register(BTPROTO_L2CAP, &l2cap_sock_family_ops))) {
- BT_ERR("Can't register L2CAP socket");
+ BT_ERR("L2CAP socket registration failed");
return err;
}
if ((err = hci_register_proto(&l2cap_hci_proto))) {
- BT_ERR("Can't register L2CAP protocol");
+ BT_ERR("L2CAP protocol registration failed");
return err;
}
create_proc_read_entry("bluetooth/l2cap", 0, 0, l2cap_read_proc, NULL);
- BT_INFO("Bluetooth L2CAP ver %s Copyright (C) 2000,2001 Qualcomm Inc", VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("L2CAP ver %s", VERSION);
+ BT_INFO("L2CAP socket layer initialized");
+
return 0;
}
@@ -2101,10 +2102,10 @@ void l2cap_cleanup(void)
/* Unregister socket and protocol */
if (bt_sock_unregister(BTPROTO_L2CAP))
- BT_ERR("Can't unregister L2CAP socket");
+ BT_ERR("L2CAP socket unregistration failed");
if (hci_unregister_proto(&l2cap_hci_proto))
- BT_ERR("Can't unregister L2CAP protocol");
+ BT_ERR("L2CAP protocol unregistration failed");
}
module_init(l2cap_init);
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index 6ca95b8cd3fa..0139250dd4e3 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1783,6 +1783,8 @@ int __init rfcomm_init(void)
{
kernel_thread(rfcomm_run, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
+ BT_INFO("RFCOMM ver %s", VERSION);
+
rfcomm_init_sockets();
#ifdef CONFIG_BT_RFCOMM_TTY
@@ -1791,9 +1793,6 @@ int __init rfcomm_init(void)
create_proc_read_entry("bluetooth/rfcomm", 0, 0, rfcomm_read_proc, NULL);
- BT_INFO("Bluetooth RFCOMM ver %s", VERSION);
- BT_INFO("Copyright (C) 2002 Maxim Krasnyansky <maxk@qualcomm.com>");
- BT_INFO("Copyright (C) 2002 Marcel Holtmann <marcel@holtmann.org>");
return 0;
}
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
index b6a93ad773f0..3d9504f805c9 100644
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
@@ -822,10 +822,11 @@ int rfcomm_init_sockets(void)
int err;
if ((err = bt_sock_register(BTPROTO_RFCOMM, &rfcomm_sock_family_ops))) {
- BT_ERR("Can't register RFCOMM socket layer");
+ BT_ERR("RFCOMM socket layer registration failed. %d", err);
return err;
}
+ BT_INFO("RFCOMM socket layer initialized");
return 0;
}
@@ -835,5 +836,5 @@ void rfcomm_cleanup_sockets(void)
/* Unregister socket, protocol and notifier */
if ((err = bt_sock_unregister(BTPROTO_RFCOMM)))
- BT_ERR("Can't unregister RFCOMM socket layer %d", err);
+ BT_ERR("RFCOMM socket layer unregistration failed. %d", err);
}
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index 994abed7022c..bc443b3194a4 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -500,10 +500,10 @@ static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig)
BT_DBG("dlc %p dev %p v24_sig 0x%02x", dlc, dev, v24_sig);
dev->modem_status =
- (v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0 |
- (v24_sig & RFCOMM_V24_RTR) ? (TIOCM_RTS | TIOCM_CTS) : 0 |
- (v24_sig & RFCOMM_V24_IC) ? TIOCM_RI : 0 |
- (v24_sig & RFCOMM_V24_DV) ? TIOCM_CD : 0;
+ ((v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0) |
+ ((v24_sig & RFCOMM_V24_RTR) ? (TIOCM_RTS | TIOCM_CTS) : 0) |
+ ((v24_sig & RFCOMM_V24_IC) ? TIOCM_RI : 0) |
+ ((v24_sig & RFCOMM_V24_DV) ? TIOCM_CD : 0);
}
/* ---- TTY functions ---- */
@@ -572,6 +572,11 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
if (dlc->state == BT_CONNECTED)
break;
+ if (signal_pending(current)) {
+ err = -EINTR;
+ break;
+ }
+
schedule();
}
set_current_state(TASK_RUNNING);
@@ -899,6 +904,8 @@ int rfcomm_init_ttys(void)
return -1;
}
+ BT_INFO("RFCOMM TTY layer initialized");
+
return 0;
}
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index defa54f0afc3..b5c14df94083 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -969,19 +969,20 @@ int __init sco_init(void)
int err;
if ((err = bt_sock_register(BTPROTO_SCO, &sco_sock_family_ops))) {
- BT_ERR("Can't register SCO socket layer");
+ BT_ERR("SCO socket registration failed");
return err;
}
if ((err = hci_register_proto(&sco_hci_proto))) {
- BT_ERR("Can't register SCO protocol");
+ BT_ERR("SCO protocol registration failed");
return err;
}
create_proc_read_entry("bluetooth/sco", 0, 0, sco_read_proc, NULL);
- BT_INFO("Bluetooth SCO ver %s Copyright (C) 2000,2001 Qualcomm Inc", VERSION);
- BT_INFO("Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>");
+ BT_INFO("SCO (Voice Link) ver %s", VERSION);
+ BT_INFO("SCO socket layer initialized");
+
return 0;
}
@@ -993,10 +994,10 @@ void sco_cleanup(void)
/* Unregister socket, protocol and notifier */
if ((err = bt_sock_unregister(BTPROTO_SCO)))
- BT_ERR("Can't unregister SCO socket layer %d", err);
+ BT_ERR("SCO socket unregistration failed. %d", err);
if ((err = hci_unregister_proto(&sco_hci_proto)))
- BT_ERR("Can't unregister SCO protocol %d", err);
+ BT_ERR("SCO protocol unregistration failed. %d", err);
}
module_init(sco_init);