From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8ADC8C43381 for ; Fri, 1 Mar 2019 14:21:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5CA6C2084F for ; Fri, 1 Mar 2019 14:21:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551450112; bh=s0DsR+d2I9sl+RtoRTXY9rXCdRoVUePREoaB/roPGpY=; h=From:Date:Subject:To:Cc:Reply-to:List-ID:From; b=YR24omt4qdtjUNIeqh+bfO8TUI+wKmtKPQwpXKgaAe5/vlI8rvUpJGhxq0C0vHiMK Lz3wNmeiCUPkq/YU6bCCRxAUDCM8IVBt+w7jGXVmkwe2Fe/OoEYyqwcZNwUGPy0eBn uC2zLCmwjY4mus9e78HgLNz8J2P7Ne886Cb3lvfI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388049AbfCAOVv (ORCPT ); Fri, 1 Mar 2019 09:21:51 -0500 Received: from www.linuxtv.org ([130.149.80.248]:47904 "EHLO www.linuxtv.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387704AbfCAOVv (ORCPT ); Fri, 1 Mar 2019 09:21:51 -0500 Received: from mchehab by www.linuxtv.org with local (Exim 4.84_2) (envelope-from ) id 1gzj2r-0004Yv-85; Fri, 01 Mar 2019 14:21:49 +0000 From: Mauro Carvalho Chehab Date: Fri, 01 Mar 2019 14:19:41 +0000 Subject: [git:media_tree/master] media: Revert "media: rc: some events are dropped by userspace" To: linuxtv-commits@linuxtv.org Cc: Sean Young , stable@vger.kernel.org Mail-followup-to: linux-media@vger.kernel.org Forward-to: linux-media@vger.kernel.org Reply-to: linux-media@vger.kernel.org Message-Id: Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org This is an automatic generated email to let you know that the following patch were queued: Subject: media: Revert "media: rc: some events are dropped by userspace" Author: Sean Young Date: Fri Feb 22 04:08:05 2019 -0500 When an rc device is created, we do not know what key codes it will support, since a new keymap might be loaded at some later point. So, we set all keybit in the input device. The uevent for the input device includes all the key codes, of which there are now 768. This overflows the size of the uevent (UEVENT_BUFFER_SIZE) and no event is generated. Revert for now until we figure out a different solution. This reverts commit fec225a04330d0f222d24feb5bea045526031675. Cc: # 4.20+ Reported-by: Christian Holpert Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) --- diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c index dc38e9c0a2ff..141fbf191bc4 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -280,6 +280,7 @@ static unsigned int ir_update_mapping(struct rc_dev *dev, unsigned int new_keycode) { int old_keycode = rc_map->scan[index].keycode; + int i; /* Did the user wish to remove the mapping? */ if (new_keycode == KEY_RESERVED || new_keycode == KEY_UNKNOWN) { @@ -294,9 +295,20 @@ static unsigned int ir_update_mapping(struct rc_dev *dev, old_keycode == KEY_RESERVED ? "New" : "Replacing", rc_map->scan[index].scancode, new_keycode); rc_map->scan[index].keycode = new_keycode; + __set_bit(new_keycode, dev->input_dev->keybit); } if (old_keycode != KEY_RESERVED) { + /* A previous mapping was updated... */ + __clear_bit(old_keycode, dev->input_dev->keybit); + /* ... but another scancode might use the same keycode */ + for (i = 0; i < rc_map->len; i++) { + if (rc_map->scan[i].keycode == old_keycode) { + __set_bit(old_keycode, dev->input_dev->keybit); + break; + } + } + /* Possibly shrink the keytable, failure is not a problem */ ir_resize_table(dev, rc_map, GFP_ATOMIC); } @@ -1759,7 +1771,6 @@ static int rc_prepare_rx_device(struct rc_dev *dev) set_bit(EV_REP, dev->input_dev->evbit); set_bit(EV_MSC, dev->input_dev->evbit); set_bit(MSC_SCAN, dev->input_dev->mscbit); - bitmap_fill(dev->input_dev->keybit, KEY_CNT); /* Pointer/mouse events */ set_bit(EV_REL, dev->input_dev->evbit);