mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	HID: reject input outside logical range only if null state is set
This patch fixes an issue in drivers/hid/hid-input.c where USB HID control null state flag is not checked upon rejecting inputs outside logical minimum-maximum range. The check should be made according to USB HID specification 1.11, section 6.2.2.5, p.31. The fix will resolve issues with some game controllers, such as: https://bugzilla.kernel.org/show_bug.cgi?id=68621 [tk@the-tk.com: shortened and fixed spelling in commit message] Signed-off-by: Valtteri Heikkilä <rnd@nic.fi> Signed-off-by: Tomasz Kramkowski <tk@the-tk.com> Acked-By: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
		
							parent
							
								
									81bbef23db
								
							
						
					
					
						commit
						3f3752705d
					
				
					 1 changed files with 1 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1157,6 +1157,7 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
 | 
			
		|||
	 * don't specify logical min and max.
 | 
			
		||||
	 */
 | 
			
		||||
	if ((field->flags & HID_MAIN_ITEM_VARIABLE) &&
 | 
			
		||||
	    (field->flags & HID_MAIN_ITEM_NULL_STATE) &&
 | 
			
		||||
	    (field->logical_minimum < field->logical_maximum) &&
 | 
			
		||||
	    (value < field->logical_minimum ||
 | 
			
		||||
	     value > field->logical_maximum)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue