Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 32812
b: refs/heads/master
c: 98bcd08
h: refs/heads/master
v: v3
  • Loading branch information
Marcel Holtmann authored and David S. Miller committed Jul 24, 2006
1 parent dfed909 commit 18ecae6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2266d8886f64c66e0a4e61e3e1c19dbc27ed00d4
refs/heads/master: 98bcd08b5bfe78c1c9bda5768aa081e0fe4fcc4f
19 changes: 17 additions & 2 deletions trunk/net/bluetooth/rfcomm/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#define VERSION "1.8"

static int disable_cfc = 0;
static int channel_mtu = -1;
static unsigned int l2cap_mtu = RFCOMM_MAX_L2CAP_MTU;

static struct task_struct *rfcomm_thread;
Expand Down Expand Up @@ -812,7 +813,10 @@ static int rfcomm_send_pn(struct rfcomm_session *s, int cr, struct rfcomm_dlc *d
pn->credits = 0;
}

pn->mtu = htobs(d->mtu);
if (cr && channel_mtu >= 0)
pn->mtu = htobs(channel_mtu);
else
pn->mtu = htobs(d->mtu);

*ptr = __fcs(buf); ptr++;

Expand Down Expand Up @@ -1243,7 +1247,10 @@ static int rfcomm_apply_pn(struct rfcomm_dlc *d, int cr, struct rfcomm_pn *pn)

d->priority = pn->priority;

d->mtu = s->mtu = btohs(pn->mtu);
d->mtu = btohs(pn->mtu);

if (cr && d->mtu > s->mtu)
d->mtu = s->mtu;

return 0;
}
Expand Down Expand Up @@ -1770,6 +1777,11 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s)
s = rfcomm_session_add(nsock, BT_OPEN);
if (s) {
rfcomm_session_hold(s);

/* We should adjust MTU on incoming sessions.
* L2CAP MTU minus UIH header and FCS. */
s->mtu = min(l2cap_pi(nsock->sk)->omtu, l2cap_pi(nsock->sk)->imtu) - 5;

rfcomm_schedule(RFCOMM_SCHED_RX);
} else
sock_release(nsock);
Expand Down Expand Up @@ -2087,6 +2099,9 @@ module_exit(rfcomm_exit);
module_param(disable_cfc, bool, 0644);
MODULE_PARM_DESC(disable_cfc, "Disable credit based flow control");

module_param(channel_mtu, int, 0644);
MODULE_PARM_DESC(channel_mtu, "Default MTU for the RFCOMM channel");

module_param(l2cap_mtu, uint, 0644);
MODULE_PARM_DESC(l2cap_mtu, "Default MTU for the L2CAP connection");

Expand Down

0 comments on commit 18ecae6

Please sign in to comment.