From 3e797d16acd31dbbc676ee051c14ddd226f12136 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sat, 6 Nov 2004 22:51:02 +0100 Subject: [Bluetooth] Add function for triggering a link key change This patch adds the hci_conn_change_link_key() function that allows to trigger a link key change for an existing connection. Signed-off-by: Marcel Holtmann --- include/net/bluetooth/hci.h | 19 +++++++++++++++++++ include/net/bluetooth/hci_core.h | 1 + 2 files changed, 20 insertions(+) (limited to 'include') diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index c3e965505e99..ba7d5ef2d2d5 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -366,6 +366,11 @@ struct hci_cp_set_conn_encrypt { __u8 encrypt; } __attribute__ ((packed)); +#define OCF_CHANGE_CONN_LINK_KEY 0x0015 +struct hci_cp_change_conn_link_key { + __u16 handle; +} __attribute__ ((packed)); + #define OCF_READ_REMOTE_FEATURES 0x001B struct hci_cp_read_rmt_features { __u16 handle; @@ -482,6 +487,12 @@ struct hci_ev_encrypt_change { __u8 encrypt; } __attribute__ ((packed)); +#define HCI_EV_CHANGE_CONN_LINK_KEY_COMPLETE 0x09 +struct hci_ev_change_conn_link_key_complete { + __u8 status; + __u16 handle; +} __attribute__ ((packed)); + #define HCI_EV_QOS_SETUP_COMPLETE 0x0D struct hci_qos { __u8 service_type; @@ -522,6 +533,14 @@ struct hci_ev_role_change { __u8 role; } __attribute__ ((packed)); +#define HCI_EV_MODE_CHANGE 0x14 +struct hci_ev_mode_change { + __u8 status; + __u16 handle; + __u8 mode; + __u16 interval; +} __attribute__ ((packed)); + #define HCI_EV_PIN_CODE_REQ 0x16 struct hci_ev_pin_code_req { bdaddr_t bdaddr; diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index ef0ecb6c75fd..16dec2fe1762 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -277,6 +277,7 @@ void hci_conn_hash_flush(struct hci_dev *hdev); struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *src); int hci_conn_auth(struct hci_conn *conn); int hci_conn_encrypt(struct hci_conn *conn); +int hci_conn_change_link_key(struct hci_conn *conn); static inline void hci_conn_set_timer(struct hci_conn *conn, unsigned long timeout) { -- cgit v1.2.3 From 846cd60b26dac360173e53b321c61dafe1adf439 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Tue, 9 Nov 2004 00:12:20 -0800 Subject: [NET]: Remove dead exports from net/core/dev.c Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller --- include/linux/netdevice.h | 10 +----- net/core/dev.c | 88 +++++++---------------------------------------- 2 files changed, 14 insertions(+), 84 deletions(-) (limited to 'include') diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index d2b2c8025dcd..9fa9c7ead784 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -526,20 +526,13 @@ extern int netdev_boot_setup_add(char *name, struct ifmap *map); extern int netdev_boot_setup_check(struct net_device *dev); extern unsigned long netdev_boot_base(const char *prefix, int unit); extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr); -extern struct net_device *__dev_getfirstbyhwtype(unsigned short type); extern struct net_device *dev_getfirstbyhwtype(unsigned short type); extern void dev_add_pack(struct packet_type *pt); extern void dev_remove_pack(struct packet_type *pt); extern void __dev_remove_pack(struct packet_type *pt); -extern int __dev_get(const char *name); -static inline int __deprecated dev_get(const char *name) -{ - return __dev_get(name); -} + extern struct net_device *dev_get_by_flags(unsigned short flags, unsigned short mask); -extern struct net_device *__dev_get_by_flags(unsigned short flags, - unsigned short mask); extern struct net_device *dev_get_by_name(const char *name); extern struct net_device *__dev_get_by_name(const char *name); extern int dev_alloc_name(struct net_device *dev, const char *name); @@ -553,7 +546,6 @@ extern void synchronize_net(void); extern int register_netdevice_notifier(struct notifier_block *nb); extern int unregister_netdevice_notifier(struct notifier_block *nb); extern int call_netdevice_notifiers(unsigned long val, void *v); -extern int dev_new_index(void); extern struct net_device *dev_get_by_index(int ifindex); extern struct net_device *__dev_get_by_index(int ifindex); extern int dev_restart(struct net_device *dev); diff --git a/net/core/dev.c b/net/core/dev.c index 7eee0813c6e7..9a8c377f8c7b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -520,35 +520,6 @@ struct net_device *dev_get_by_name(const char *name) return dev; } -/* - Return value is changed to int to prevent illegal usage in future. - It is still legal to use to check for device existence. - - User should understand, that the result returned by this function - is meaningless, if it was not issued under rtnl semaphore. - */ - -/** - * dev_get - test if a device exists - * @name: name to test for - * - * Test if a name exists. Returns true if the name is found. In order - * to be sure the name is not allocated or removed during the test the - * caller must hold the rtnl semaphore. - * - * This function exists only for back compatibility with older - * drivers. - */ -int __dev_get(const char *name) -{ - struct net_device *dev; - - read_lock(&dev_base_lock); - dev = __dev_get_by_name(name); - read_unlock(&dev_base_lock); - return dev != NULL; -} - /** * __dev_get_by_index - find a device by its ifindex * @ifindex: index of device @@ -623,26 +594,17 @@ struct net_device *dev_getbyhwaddr(unsigned short type, char *ha) return dev; } -struct net_device *__dev_getfirstbyhwtype(unsigned short type) -{ - struct net_device *dev; - - for (dev = dev_base; dev; dev = dev->next) - if (dev->type == type) - break; - return dev; -} - -EXPORT_SYMBOL(__dev_getfirstbyhwtype); - struct net_device *dev_getfirstbyhwtype(unsigned short type) { struct net_device *dev; rtnl_lock(); - dev = __dev_getfirstbyhwtype(type); - if (dev) - dev_hold(dev); + for (dev = dev_base; dev; dev = dev->next) { + if (dev->type == type) { + dev_hold(dev); + break; + } + } rtnl_unlock(); return dev; } @@ -665,32 +627,14 @@ struct net_device * dev_get_by_flags(unsigned short if_flags, unsigned short mas struct net_device *dev; read_lock(&dev_base_lock); - dev = __dev_get_by_flags(if_flags, mask); - if (dev) - dev_hold(dev); - read_unlock(&dev_base_lock); - return dev; -} - -/** - * __dev_get_by_flags - find any device with given flags - * @if_flags: IFF_* values - * @mask: bitmask of bits in if_flags to check - * - * Search for any interface with the given flags. Returns NULL if a device - * is not found or a pointer to the device. The caller must hold either - * the RTNL semaphore or @dev_base_lock. - */ - -struct net_device *__dev_get_by_flags(unsigned short if_flags, unsigned short mask) -{ - struct net_device *dev; - for (dev = dev_base; dev != NULL; dev = dev->next) { - if (((dev->flags ^ if_flags) & mask) == 0) - return dev; + if (((dev->flags ^ if_flags) & mask) == 0) { + dev_hold(dev); + break; + } } - return NULL; + read_unlock(&dev_base_lock); + return dev; } /** @@ -2700,7 +2644,7 @@ int dev_ioctl(unsigned int cmd, void __user *arg) * number. The caller must hold the rtnl semaphore or the * dev_base_lock to be sure it remains unique. */ -int dev_new_index(void) +static int dev_new_index(void) { static int ifindex; for (;;) { @@ -3240,8 +3184,6 @@ out: subsys_initcall(net_dev_init); -EXPORT_SYMBOL(__dev_get); -EXPORT_SYMBOL(__dev_get_by_flags); EXPORT_SYMBOL(__dev_get_by_index); EXPORT_SYMBOL(__dev_get_by_name); EXPORT_SYMBOL(__dev_remove_pack); @@ -3252,17 +3194,13 @@ EXPORT_SYMBOL(dev_close); EXPORT_SYMBOL(dev_get_by_flags); EXPORT_SYMBOL(dev_get_by_index); EXPORT_SYMBOL(dev_get_by_name); -EXPORT_SYMBOL(dev_getbyhwaddr); EXPORT_SYMBOL(dev_ioctl); -EXPORT_SYMBOL(dev_new_index); EXPORT_SYMBOL(dev_open); EXPORT_SYMBOL(dev_queue_xmit); -EXPORT_SYMBOL(dev_queue_xmit_nit); EXPORT_SYMBOL(dev_remove_pack); EXPORT_SYMBOL(dev_set_allmulti); EXPORT_SYMBOL(dev_set_promiscuity); EXPORT_SYMBOL(dev_change_flags); -EXPORT_SYMBOL(dev_change_name); EXPORT_SYMBOL(dev_set_mtu); EXPORT_SYMBOL(free_netdev); EXPORT_SYMBOL(netdev_boot_setup_check); -- cgit v1.2.3 From 7ad988a2e1d0dbd4eaf5b3fcbdd9f4cbf0e814ba Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Tue, 9 Nov 2004 05:52:55 -0800 Subject: [NET]: Mark __{lock,release}_sock() static. Signed-off-by: Arjan van de Ven Signed-off-by: David S. Miller --- include/net/sock.h | 2 -- net/core/sock.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/net/sock.h b/include/net/sock.h index bfad716ce409..c9e1bad6f067 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -698,8 +698,6 @@ static inline int sk_stream_rmem_schedule(struct sock *sk, struct sk_buff *skb) * Since ~2.3.5 it is also exclusive sleep lock serializing * accesses from user process context. */ -extern void __lock_sock(struct sock *sk); -extern void __release_sock(struct sock *sk); #define sock_owned_by_user(sk) ((sk)->sk_lock.owner) extern void FASTCALL(lock_sock(struct sock *sk)); diff --git a/net/core/sock.c b/net/core/sock.c index 07043af1b1f2..9e970c64ee2d 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -913,7 +913,7 @@ struct sk_buff *sock_alloc_send_skb(struct sock *sk, unsigned long size, return sock_alloc_send_pskb(sk, size, 0, noblock, errcode); } -void __lock_sock(struct sock *sk) +static void __lock_sock(struct sock *sk) { DEFINE_WAIT(wait); @@ -929,7 +929,7 @@ void __lock_sock(struct sock *sk) finish_wait(&sk->sk_lock.wq, &wait); } -void __release_sock(struct sock *sk) +static void __release_sock(struct sock *sk) { struct sk_buff *skb = sk->sk_backlog.head; @@ -1359,8 +1359,6 @@ void sk_free_slab(struct proto *prot) EXPORT_SYMBOL(sk_free_slab); -EXPORT_SYMBOL(__lock_sock); -EXPORT_SYMBOL(__release_sock); EXPORT_SYMBOL(sk_alloc); EXPORT_SYMBOL(sk_free); EXPORT_SYMBOL(sk_send_sigurg); -- cgit v1.2.3