diff options
author | Andrei Emeltchenko <andrei.emeltchenko@intel.com> | 2012-10-08 04:14:41 -0400 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-10-08 08:40:12 -0400 |
commit | 8936fa6d1c202abeb94c51c68897342e8714dd69 (patch) | |
tree | 67b4e1efaf955a945ef38e1687a813d2da33072c | |
parent | 0b4558e388e72b6d088a057833bafb816ff8af85 (diff) |
Bluetooth: L2CAP: Fix using default Flush Timeout for EFS
There are two Flush Timeouts: one is old Flush Timeot Option
which is 2 octets and the second is Flush Timeout inside EFS
which is 4 octets long.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
-rw-r--r-- | include/net/bluetooth/l2cap.h | 3 | ||||
-rw-r--r-- | net/bluetooth/l2cap_core.c | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 7002f0d656ed..caab98c45121 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -32,7 +32,8 @@ | |||
32 | /* L2CAP defaults */ | 32 | /* L2CAP defaults */ |
33 | #define L2CAP_DEFAULT_MTU 672 | 33 | #define L2CAP_DEFAULT_MTU 672 |
34 | #define L2CAP_DEFAULT_MIN_MTU 48 | 34 | #define L2CAP_DEFAULT_MIN_MTU 48 |
35 | #define L2CAP_DEFAULT_FLUSH_TO 0xffff | 35 | #define L2CAP_DEFAULT_FLUSH_TO 0xFFFF |
36 | #define L2CAP_EFS_DEFAULT_FLUSH_TO 0xFFFFFFFF | ||
36 | #define L2CAP_DEFAULT_TX_WINDOW 63 | 37 | #define L2CAP_DEFAULT_TX_WINDOW 63 |
37 | #define L2CAP_DEFAULT_EXT_WINDOW 0x3FFF | 38 | #define L2CAP_DEFAULT_EXT_WINDOW 0x3FFF |
38 | #define L2CAP_DEFAULT_MAX_TX 3 | 39 | #define L2CAP_DEFAULT_MAX_TX 3 |
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index d605bbfddec1..d42cdb145c6d 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
@@ -504,7 +504,7 @@ void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan) | |||
504 | chan->local_msdu = L2CAP_DEFAULT_MAX_SDU_SIZE; | 504 | chan->local_msdu = L2CAP_DEFAULT_MAX_SDU_SIZE; |
505 | chan->local_sdu_itime = L2CAP_DEFAULT_SDU_ITIME; | 505 | chan->local_sdu_itime = L2CAP_DEFAULT_SDU_ITIME; |
506 | chan->local_acc_lat = L2CAP_DEFAULT_ACC_LAT; | 506 | chan->local_acc_lat = L2CAP_DEFAULT_ACC_LAT; |
507 | chan->local_flush_to = L2CAP_DEFAULT_FLUSH_TO; | 507 | chan->local_flush_to = L2CAP_EFS_DEFAULT_FLUSH_TO; |
508 | 508 | ||
509 | l2cap_chan_hold(chan); | 509 | l2cap_chan_hold(chan); |
510 | 510 | ||
@@ -2727,7 +2727,7 @@ static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan) | |||
2727 | efs.msdu = cpu_to_le16(chan->local_msdu); | 2727 | efs.msdu = cpu_to_le16(chan->local_msdu); |
2728 | efs.sdu_itime = cpu_to_le32(chan->local_sdu_itime); | 2728 | efs.sdu_itime = cpu_to_le32(chan->local_sdu_itime); |
2729 | efs.acc_lat = __constant_cpu_to_le32(L2CAP_DEFAULT_ACC_LAT); | 2729 | efs.acc_lat = __constant_cpu_to_le32(L2CAP_DEFAULT_ACC_LAT); |
2730 | efs.flush_to = __constant_cpu_to_le32(L2CAP_DEFAULT_FLUSH_TO); | 2730 | efs.flush_to = __constant_cpu_to_le32(L2CAP_EFS_DEFAULT_FLUSH_TO); |
2731 | break; | 2731 | break; |
2732 | 2732 | ||
2733 | case L2CAP_MODE_STREAMING: | 2733 | case L2CAP_MODE_STREAMING: |
@@ -2744,7 +2744,7 @@ static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan) | |||
2744 | } | 2744 | } |
2745 | 2745 | ||
2746 | l2cap_add_conf_opt(ptr, L2CAP_CONF_EFS, sizeof(efs), | 2746 | l2cap_add_conf_opt(ptr, L2CAP_CONF_EFS, sizeof(efs), |
2747 | (unsigned long) &efs); | 2747 | (unsigned long) &efs); |
2748 | } | 2748 | } |
2749 | 2749 | ||
2750 | static void l2cap_ack_timeout(struct work_struct *work) | 2750 | static void l2cap_ack_timeout(struct work_struct *work) |