diff -urp linux-2.6.24/include/net/bluetooth/rfcomm.h linux-2.6.28-working/include/net/bluetooth/rfcomm.h --- linux-2.6.24/include/net/bluetooth/rfcomm.h 2009-02-09 13:17:45.000000000 +0000 +++ linux-2.6.28-working/include/net/bluetooth/rfcomm.h 2009-02-18 16:10:10.000000000 +0000 @@ -252,8 +252,8 @@ static inline void rfcomm_dlc_put(struct rfcomm_dlc_free(d); } -extern void FASTCALL(__rfcomm_dlc_throttle(struct rfcomm_dlc *d)); -extern void FASTCALL(__rfcomm_dlc_unthrottle(struct rfcomm_dlc *d)); +extern void __rfcomm_dlc_throttle(struct rfcomm_dlc *d); +extern void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d); static inline void rfcomm_dlc_throttle(struct rfcomm_dlc *d) { diff -urp linux-2.6.24/net/bluetooth/hci_sysfs.c linux-2.6.28-working/net/bluetooth/hci_sysfs.c --- linux-2.6.24/net/bluetooth/hci_sysfs.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/hci_sysfs.c 2009-02-18 16:15:40.000000000 +0000 @@ -332,7 +332,7 @@ static void del_conn(struct work_struct struct device *dev; struct hci_conn *conn = container_of(work, struct hci_conn, work); - while (dev = device_find_child(&conn->dev, NULL, __match_tty)) { + while ((dev = device_find_child(&conn->dev, NULL, __match_tty))) { device_move(dev, NULL); put_device(dev); } @@ -377,10 +377,6 @@ int hci_register_sysfs(struct hci_dev *h if (device_create_file(dev, bt_attrs[i]) < 0) BT_ERR("Failed to create device attribute"); - if (sysfs_create_link(&bt_class->subsys.kobj, - &dev->kobj, kobject_name(&dev->kobj)) < 0) - BT_ERR("Failed to create class symlink"); - return 0; } @@ -388,9 +384,6 @@ void hci_unregister_sysfs(struct hci_dev { BT_DBG("%p name %s type %d", hdev, hdev->name, hdev->type); - sysfs_remove_link(&bt_class->subsys.kobj, - kobject_name(&hdev->dev.kobj)); - device_del(&hdev->dev); } diff -urp linux-2.6.24/net/bluetooth/hidp/Makefile linux-2.6.28-working/net/bluetooth/hidp/Makefile --- linux-2.6.24/net/bluetooth/hidp/Makefile 2005-02-17 23:01:51.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/hidp/Makefile 2009-02-18 16:30:49.000000000 +0000 @@ -2,6 +2,6 @@ # Makefile for the Linux Bluetooth HIDP layer # -obj-$(CONFIG_BT_HIDP) += hidp.o +#obj-$(CONFIG_BT_HIDP) += hidp.o hidp-objs := core.o sock.o diff -urp linux-2.6.24/net/bluetooth/l2cap.c linux-2.6.28-working/net/bluetooth/l2cap.c --- linux-2.6.24/net/bluetooth/l2cap.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/l2cap.c 2009-02-18 16:20:04.000000000 +0000 @@ -1505,7 +1505,7 @@ static inline int l2cap_connect_req(stru goto response; } - sk = l2cap_sock_alloc(parent->sk_net, NULL, BTPROTO_L2CAP, GFP_ATOMIC); + sk = l2cap_sock_alloc(sock_net(parent), NULL, BTPROTO_L2CAP, GFP_ATOMIC); if (!sk) goto response; diff -urp linux-2.6.24/net/bluetooth/rfcomm/core.c linux-2.6.28-working/net/bluetooth/rfcomm/core.c --- linux-2.6.24/net/bluetooth/rfcomm/core.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/rfcomm/core.c 2009-02-18 16:11:21.000000000 +0000 @@ -467,7 +467,7 @@ int rfcomm_dlc_send(struct rfcomm_dlc *d return len; } -void fastcall __rfcomm_dlc_throttle(struct rfcomm_dlc *d) +void __rfcomm_dlc_throttle(struct rfcomm_dlc *d) { BT_DBG("dlc %p state %ld", d, d->state); @@ -478,7 +478,7 @@ void fastcall __rfcomm_dlc_throttle(stru rfcomm_schedule(RFCOMM_SCHED_TX); } -void fastcall __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d) +void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d) { BT_DBG("dlc %p state %ld", d, d->state); diff -urp linux-2.6.24/net/bluetooth/rfcomm/sock.c linux-2.6.28-working/net/bluetooth/rfcomm/sock.c --- linux-2.6.24/net/bluetooth/rfcomm/sock.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/rfcomm/sock.c 2009-02-18 16:20:40.000000000 +0000 @@ -868,7 +868,7 @@ int rfcomm_connect_ind(struct rfcomm_ses goto done; } - sk = rfcomm_sock_alloc(parent->sk_net, NULL, BTPROTO_RFCOMM, GFP_ATOMIC); + sk = rfcomm_sock_alloc(sock_net(parent), NULL, BTPROTO_RFCOMM, GFP_ATOMIC); if (!sk) goto done; diff -urp linux-2.6.24/net/bluetooth/rfcomm/tty.c linux-2.6.28-working/net/bluetooth/rfcomm/tty.c --- linux-2.6.24/net/bluetooth/rfcomm/tty.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/rfcomm/tty.c 2009-02-18 16:27:34.000000000 +0000 @@ -611,10 +611,7 @@ static void rfcomm_tty_wakeup(unsigned l BT_DBG("dev %p tty %p", dev, tty); - if (test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags) && tty->ldisc.write_wakeup) - (tty->ldisc.write_wakeup)(tty); - - wake_up_interruptible(&tty->write_wait); + tty_wakeup(tty); #ifdef SERIAL_HAVE_POLL_WAIT wake_up_interruptible(&tty->poll_wait); #endif @@ -999,8 +996,7 @@ static void rfcomm_tty_flush_buffer(stru skb_queue_purge(&dev->dlc->tx_queue); - if (test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags) && tty->ldisc.write_wakeup) - tty->ldisc.write_wakeup(tty); + tty_wakeup(tty); } static void rfcomm_tty_send_xchar(struct tty_struct *tty, char ch) diff -urp linux-2.6.24/net/bluetooth/sco.c linux-2.6.28-working/net/bluetooth/sco.c --- linux-2.6.24/net/bluetooth/sco.c 2009-02-09 13:17:47.000000000 +0000 +++ linux-2.6.28-working/net/bluetooth/sco.c 2009-02-18 16:20:13.000000000 +0000 @@ -810,7 +810,7 @@ static void sco_conn_ready(struct sco_co bh_lock_sock(parent); - sk = sco_sock_alloc(parent->sk_net, NULL, BTPROTO_SCO, GFP_ATOMIC); + sk = sco_sock_alloc(sock_net(parent), NULL, BTPROTO_SCO, GFP_ATOMIC); if (!sk) { bh_unlock_sock(parent); goto done;