diff options
author | Sjur Brændeland <sjur.brandeland@stericsson.com> | 2011-04-11 06:43:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-11 18:08:48 -0400 |
commit | 4dd820c088d201e526840c9dbc2f0b87a0a41868 (patch) | |
tree | fac7a3a70bd32df3104ae6f1273a727fb0fa006f /net/caif/cffrml.c | |
parent | 73d6ac633c6c0ca703f90db0b808d9593e46aef6 (diff) |
caif: Don't resend if dev_queue_xmit fails.
If CAIF Link Layer returns an error, we no longer try to re-build the
CAIF packet and resend it. Instead, we simply return any transmission
errors to the socket client.
Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/caif/cffrml.c')
-rw-r--r-- | net/caif/cffrml.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/caif/cffrml.c b/net/caif/cffrml.c index a445043931ae..2423fed8e26c 100644 --- a/net/caif/cffrml.c +++ b/net/caif/cffrml.c | |||
@@ -120,7 +120,6 @@ static int cffrml_transmit(struct cflayer *layr, struct cfpkt *pkt) | |||
120 | int tmp; | 120 | int tmp; |
121 | u16 chks; | 121 | u16 chks; |
122 | u16 len; | 122 | u16 len; |
123 | int ret; | ||
124 | struct cffrml *this = container_obj(layr); | 123 | struct cffrml *this = container_obj(layr); |
125 | if (this->dofcs) { | 124 | if (this->dofcs) { |
126 | chks = cfpkt_iterate(pkt, cffrml_checksum, 0xffff); | 125 | chks = cfpkt_iterate(pkt, cffrml_checksum, 0xffff); |
@@ -137,12 +136,7 @@ static int cffrml_transmit(struct cflayer *layr, struct cfpkt *pkt) | |||
137 | pr_err("Packet is erroneous!\n"); | 136 | pr_err("Packet is erroneous!\n"); |
138 | return -EPROTO; | 137 | return -EPROTO; |
139 | } | 138 | } |
140 | ret = layr->dn->transmit(layr->dn, pkt); | 139 | return layr->dn->transmit(layr->dn, pkt); |
141 | if (ret < 0) { | ||
142 | /* Remove header on faulty packet. */ | ||
143 | cfpkt_extr_head(pkt, &tmp, 2); | ||
144 | } | ||
145 | return ret; | ||
146 | } | 140 | } |
147 | 141 | ||
148 | static void cffrml_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl, | 142 | static void cffrml_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl, |