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)
|
230 | 230 | if (cookie->packet_index == 1) { |
231 | 231 | int xDelta |
232 | 232 | = ((cookie->buffer[0] & 0x10) ? 0xFFFFFF00 : 0) | data; |
233 | | if (xDelta < -100 || xDelta > 100) { |
| 233 | if (xDelta < -256 || xDelta > 255) { |
234 | 234 | INFO("ps2: strange mouse data, x-delta %d, trying resync\n", |
235 | 235 | xDelta); |
236 | 236 | cookie->packet_index = 0; |
… |
… |
standard_mouse_handle_int(ps2_dev* dev)
|
240 | 240 | if (cookie->packet_index == 2) { |
241 | 241 | int yDelta |
242 | 242 | = ((cookie->buffer[0] & 0x20) ? 0xFFFFFF00 : 0) | data; |
243 | | if (yDelta < -100 || yDelta > 100) { |
| 243 | if (yDelta < -256 || yDelta > 255) { |
244 | 244 | INFO("ps2: strange mouse data, y-delta %d, trying resync\n", |
245 | 245 | yDelta); |
246 | 246 | cookie->packet_index = 0; |