lkml.org 
[lkml]   [2011]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [104/139] n_gsm: Fix message length handling when building header
    Date
    2.6.35-longterm review patch.  If anyone has any objections, please let me know.

    ------------------
    From: Ken Mills <ken.k.mills@intel.com>

    commit be7a7411d63ccad165d66fe8e0b11b2ee336159b upstream.

    Fix message length handling when building header

    When the message length is greater than 127, the length field in the header
    is built incorrectly. According to the spec, when the length is less than 128
    the length field is a single byte formatted as: bbbbbbb1. When it is greater
    than 127 then the field is two bytes of the format: bbbbbbb0 bbbbbbbb.

    Signed-off-by: Ken Mills <ken.k.mills@intel.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

    ---
    drivers/char/n_gsm.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    Index: linux-2.6.35.y/drivers/char/n_gsm.c
    ===================================================================
    --- linux-2.6.35.y.orig/drivers/char/n_gsm.c
    +++ linux-2.6.35.y/drivers/char/n_gsm.c
    @@ -717,8 +717,8 @@ static void __gsm_data_queue(struct gsm_
    if (msg->len < 128)
    *--dp = (msg->len << 1) | EA;
    else {
    - *--dp = (msg->len >> 6) | EA;
    - *--dp = (msg->len & 127) << 1;
    + *--dp = (msg->len >> 7); /* bits 7 - 15 */
    + *--dp = (msg->len & 127) << 1; /* bits 0 - 6 */
    }
    }


    \
     
     \ /
      Last update: 2011-02-02 01:55    [W:4.064 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site