Ticket #7802: 0001-PS-2-bus-manager-check-all-valid-values.patch

File 0001-PS-2-bus-manager-check-all-valid-values.patch, 1.5 KB (added by jscipione, 10 years ago)

Patch which checks from -256 to 255 instead of -100 to 100. Verified that this fixes the problem on vbox on hrev47470

  • src/add-ons/kernel/bus_managers/ps2/ps2_standard_mouse.cpp

    From e19f313ee6faa7bcd63947d2302b9ec081bbb8f9 Mon Sep 17 00:00:00 2001
    From: John Scipione <jscipione@gmail.com>
    Date: Mon, 7 Jul 2014 19:02:45 -0400
    Subject: [PATCH] PS/2 bus manager check all valid values
    
    According to korli "Valid values seem to be between 255 and -256" which
    is verified by syslog running on virtual box with a PS/2 mouse on Haiku
    hrev47470.
    
    Fixes #7802
    ---
     src/add-ons/kernel/bus_managers/ps2/ps2_standard_mouse.cpp | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/src/add-ons/kernel/bus_managers/ps2/ps2_standard_mouse.cpp b/src/add-ons/kernel/bus_managers/ps2/ps2_standard_mouse.cpp
    index 65c1c78..5dbe345 100644
    a b standard_mouse_handle_int(ps2_dev* dev)  
    230230    if (cookie->packet_index == 1) {
    231231        int xDelta
    232232            = ((cookie->buffer[0] & 0x10) ? 0xFFFFFF00 : 0) | data;
    233         if (xDelta < -100 || xDelta > 100) {
     233        if (xDelta < -256 || xDelta > 255) {
    234234            INFO("ps2: strange mouse data, x-delta %d, trying resync\n",
    235235                xDelta);
    236236            cookie->packet_index = 0;
    standard_mouse_handle_int(ps2_dev* dev)  
    240240    if (cookie->packet_index == 2) {
    241241        int yDelta
    242242            = ((cookie->buffer[0] & 0x20) ? 0xFFFFFF00 : 0) | data;
    243         if (yDelta < -100 || yDelta > 100) {
     243        if (yDelta < -256 || yDelta > 255) {
    244244            INFO("ps2: strange mouse data, y-delta %d, trying resync\n",
    245245                yDelta);
    246246            cookie->packet_index = 0;