diff options
Diffstat (limited to 'net/phonet/pep.c')
-rw-r--r-- | net/phonet/pep.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/phonet/pep.c b/net/phonet/pep.c index 7bf23cf36b02..552fb665645f 100644 --- a/net/phonet/pep.c +++ b/net/phonet/pep.c | |||
@@ -1288,6 +1288,7 @@ static int pipe_skb_send(struct sock *sk, struct sk_buff *skb) | |||
1288 | { | 1288 | { |
1289 | struct pep_sock *pn = pep_sk(sk); | 1289 | struct pep_sock *pn = pep_sk(sk); |
1290 | struct pnpipehdr *ph; | 1290 | struct pnpipehdr *ph; |
1291 | int err; | ||
1291 | #ifdef CONFIG_PHONET_PIPECTRLR | 1292 | #ifdef CONFIG_PHONET_PIPECTRLR |
1292 | struct sockaddr_pn spn = { | 1293 | struct sockaddr_pn spn = { |
1293 | .spn_family = AF_PHONET, | 1294 | .spn_family = AF_PHONET, |
@@ -1314,10 +1315,15 @@ static int pipe_skb_send(struct sock *sk, struct sk_buff *skb) | |||
1314 | ph->message_id = PNS_PIPE_DATA; | 1315 | ph->message_id = PNS_PIPE_DATA; |
1315 | ph->pipe_handle = pn->pipe_handle; | 1316 | ph->pipe_handle = pn->pipe_handle; |
1316 | #ifdef CONFIG_PHONET_PIPECTRLR | 1317 | #ifdef CONFIG_PHONET_PIPECTRLR |
1317 | return pn_skb_send(sk, skb, &spn); | 1318 | err = pn_skb_send(sk, skb, &spn); |
1318 | #else | 1319 | #else |
1319 | return pn_skb_send(sk, skb, &pipe_srv); | 1320 | err = pn_skb_send(sk, skb, &pipe_srv); |
1320 | #endif | 1321 | #endif |
1322 | |||
1323 | if (err && pn_flow_safe(pn->tx_fc)) | ||
1324 | atomic_inc(&pn->tx_credits); | ||
1325 | return err; | ||
1326 | |||
1321 | } | 1327 | } |
1322 | 1328 | ||
1323 | static int pep_sendmsg(struct kiocb *iocb, struct sock *sk, | 1329 | static int pep_sendmsg(struct kiocb *iocb, struct sock *sk, |