From: Greg Kroah-Hartman Date: Wed, 3 Jun 2015 01:50:06 +0000 (+0900) Subject: 3.14-stable patches X-Git-Tag: v3.10.80~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=32c26a8ddfd0ad47f70d214936375279cb39fe19;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: staging-gdm724x-correction-of-variable-usage-after-applying-align.patch --- diff --git a/queue-3.14/series b/queue-3.14/series index 169d643a756..6e937d80582 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -22,3 +22,4 @@ asoc-mc13783-fix-wrong-mask-value-used-in-mc13xxx_reg_rmw-calls.patch asoc-uda1380-avoid-accessing-i2c-bus-when-codec-is-disabled.patch asoc-wm8960-fix-rinput3-audio-route-error.patch asoc-wm8994-correct-bclk-div-348-to-384.patch +staging-gdm724x-correction-of-variable-usage-after-applying-align.patch diff --git a/queue-3.14/staging-gdm724x-correction-of-variable-usage-after-applying-align.patch b/queue-3.14/staging-gdm724x-correction-of-variable-usage-after-applying-align.patch new file mode 100644 index 00000000000..6a4c1668d79 --- /dev/null +++ b/queue-3.14/staging-gdm724x-correction-of-variable-usage-after-applying-align.patch @@ -0,0 +1,90 @@ +From 892c89d5d7ffd1bb794fe54d86c0eef18d215fab Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C5=82awomir=20Demeszko?= + +Date: Tue, 5 May 2015 17:49:54 +0200 +Subject: staging: gdm724x: Correction of variable usage after applying ALIGN() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?S=C5=82awomir=20Demeszko?= + +commit 892c89d5d7ffd1bb794fe54d86c0eef18d215fab upstream. + +Fix regression introduced by commit <29ef8a53542a>. After it writing +AT commands to /dev/GCT-ATM0 is unsuccessful (no echo, no response) +and dmesg show "gdmtty: invalid payload : 1 16 f011". + +Before that commit value of dummy_cnt was only a padding size. After using +ALIGN() this value is increased by its first argument. So the following +usage of this variable needs correction. + +Signed-off-by: Sławomir Demeszko +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/gdm724x/gdm_mux.c | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + +--- a/drivers/staging/gdm724x/gdm_mux.c ++++ b/drivers/staging/gdm724x/gdm_mux.c +@@ -158,7 +158,7 @@ static int up_to_host(struct mux_rx *r) + unsigned int start_flag; + unsigned int payload_size; + unsigned short packet_type; +- int dummy_cnt; ++ int total_len; + u32 packet_size_sum = r->offset; + int index; + int ret = TO_HOST_INVALID_PACKET; +@@ -175,10 +175,10 @@ static int up_to_host(struct mux_rx *r) + break; + } + +- dummy_cnt = ALIGN(MUX_HEADER_SIZE + payload_size, 4); ++ total_len = ALIGN(MUX_HEADER_SIZE + payload_size, 4); + + if (len - packet_size_sum < +- MUX_HEADER_SIZE + payload_size + dummy_cnt) { ++ total_len) { + pr_err("invalid payload : %d %d %04x\n", + payload_size, len, packet_type); + break; +@@ -201,7 +201,7 @@ static int up_to_host(struct mux_rx *r) + break; + } + +- packet_size_sum += MUX_HEADER_SIZE + payload_size + dummy_cnt; ++ packet_size_sum += total_len; + if (len - packet_size_sum <= MUX_HEADER_SIZE + 2) { + ret = r->callback(NULL, + 0, +@@ -359,7 +359,6 @@ static int gdm_mux_send(void *priv_dev, + struct mux_pkt_header *mux_header; + struct mux_tx *t = NULL; + static u32 seq_num = 1; +- int dummy_cnt; + int total_len; + int ret; + unsigned long flags; +@@ -372,9 +371,7 @@ static int gdm_mux_send(void *priv_dev, + + spin_lock_irqsave(&mux_dev->write_lock, flags); + +- dummy_cnt = ALIGN(MUX_HEADER_SIZE + len, 4); +- +- total_len = len + MUX_HEADER_SIZE + dummy_cnt; ++ total_len = ALIGN(MUX_HEADER_SIZE + len, 4); + + t = alloc_mux_tx(total_len); + if (!t) { +@@ -390,7 +387,8 @@ static int gdm_mux_send(void *priv_dev, + mux_header->packet_type = __cpu_to_le16(packet_type[tty_index]); + + memcpy(t->buf+MUX_HEADER_SIZE, data, len); +- memset(t->buf+MUX_HEADER_SIZE+len, 0, dummy_cnt); ++ memset(t->buf+MUX_HEADER_SIZE+len, 0, total_len - MUX_HEADER_SIZE - ++ len); + + t->len = total_len; + t->callback = cb;