mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
DLKM/sarsensor:sometimes avc error after reboot
sync sx933x patch to abov sar sensor code:
(CR) sensor:sometimes avc error after reboot
Issue:
Sometimes avc error after reboot:
avc: denied { write } for comm="capsense_reset" name="reset" dev="sysfs"
ino=54780 scontext=u:r:capsense_reset:s0 tcontext =u:object_r:sysfs:s0
tclass=file permissive=0 pkg=""
Rootcause:
class_register logic: -create sysfs dir 'capsense'
-send uevent 'add' to hal
-create sysfs file 'reset'
Most of times sysfs file haven't create while ueventd monitor 'ADD' to
fresh sys/class/capsense label as 'sysfs_capsense',
file under capsense will inherit /sys label ,which is 'sysfs'.
Fix:
Send uevent 'CHANGE' again to HAL,
so that relabeling '/sys/class/capsense/*'.
Change-Id: Iea5270830160e1edef2429ae11829eccbb388838
Signed-off-by: chenlj2 <chenlj2@motorola.com>
Reviewed-on: https://gerrit.mot.com/1436924
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Jiacheng Ou <oujc1@motorola.com>
Reviewed-by: Jianqiu Huang <huangjq9@motorola.com>
Reviewed-by: Tao Sun <suntao2@motorola.com>
Reviewed-by: Wen Xie <xiewen3@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
parent
74a3cf4185
commit
4b22a080af
4 changed files with 26 additions and 0 deletions
|
|
@ -1,7 +1,15 @@
|
|||
# add -Wall to try to catch everything we can.
|
||||
KERNEL_DIR_PATH = $(shell find $(TOP)/kernel/ -name "msm-*" | head -1 | grep -i "kernel/msm-*")
|
||||
|
||||
KERNEL_VERSION_NAME = $(shell basename $(KERNEL_DIR_PATH))
|
||||
EXTRA_CFLAGS += -Wall
|
||||
EXTRA_CFLAGS += -I$(TOP)/motorola/kernel/modules/include
|
||||
|
||||
ifneq (,$(KERNEL_DIR_PATH))
|
||||
EXTRA_CFLAGS += -I$(TOP)/kernel/$(KERNEL_VERSION_NAME)/drivers/base
|
||||
else
|
||||
EXTRA_CFLAGS += -I$(TOP)/kernel/drivers/base
|
||||
endif
|
||||
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../sensors/Module.symvers
|
||||
|
||||
abov_sar-y := abov_sar_mmi.o
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
#include <asm/atomic.h>
|
||||
#include <linux/async.h>
|
||||
#include <linux/firmware.h>
|
||||
#include "base.h"
|
||||
#define SLEEP(x) mdelay(x)
|
||||
|
||||
#define C_I2C_FIFO_SIZE 8
|
||||
|
|
@ -1707,6 +1708,9 @@ static int abov_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|||
goto err_class_register;
|
||||
}
|
||||
|
||||
/*restore sys/class/capsense label*/
|
||||
kobject_uevent(&capsense_class.p->subsys.kobj, KOBJ_CHANGE);
|
||||
|
||||
#ifdef USE_SENSORS_CLASS
|
||||
sensors_capsensor_top_cdev.sensors_enable = capsensor_set_enable;
|
||||
sensors_capsensor_top_cdev.sensors_poll_delay = NULL;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
# add -Wall to try to catch everything we can.
|
||||
KERNEL_DIR_PATH = $(shell find $(TOP)/kernel/ -name "msm-*" | head -1 | grep -i "kernel/msm-*")
|
||||
|
||||
KERNEL_VERSION_NAME = $(shell basename $(KERNEL_DIR_PATH))
|
||||
EXTRA_CFLAGS += -Wall
|
||||
EXTRA_CFLAGS += -I$(TOP)/motorola/kernel/modules/include
|
||||
|
||||
ifneq (,$(KERNEL_DIR_PATH))
|
||||
EXTRA_CFLAGS += -I$(TOP)/kernel/$(KERNEL_VERSION_NAME)/drivers/base
|
||||
else
|
||||
EXTRA_CFLAGS += -I$(TOP)/kernel/drivers/base
|
||||
endif
|
||||
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../sensors/Module.symvers
|
||||
obj-m = abov_sar_a96t.o
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@
|
|||
#include <linux/async.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/version.h>
|
||||
#include "base.h"
|
||||
|
||||
#define SLEEP(x) mdelay(x)
|
||||
|
||||
#define C_I2C_FIFO_SIZE 8
|
||||
|
|
@ -1572,6 +1574,9 @@ static int abov_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|||
LOG_DBG("Create update_fw file failed (%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
/*restore sys/class/capsense label*/
|
||||
kobject_uevent(&capsense_class.p->subsys.kobj, KOBJ_CHANGE);
|
||||
|
||||
#ifdef USE_SENSORS_CLASS
|
||||
sensors_capsensor_top_cdev.sensors_enable = capsensor_set_enable;
|
||||
sensors_capsensor_top_cdev.sensors_poll_delay = NULL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue