Loading OWNERS +12 −2 Original line number Diff line number Diff line # include OWNERS from the authoritative android-mainline branch include kernel/common:android-mainline:/OWNERS set noparent # GKI Dr. No Enforcement is active on this branch. Approval of one of the Dr. # No reviewers is required following a regular CodeReview+2 vote of a code # reviewer. # # See the GKI release documentation (go/gki-dr-no) for further details. # # The expanded list of reviewers can be found at: # https://android.googlesource.com/kernel/common/+/android-mainline/OWNERS_DrNo include kernel/common:android-mainline:/OWNERS_DrNo android/OWNERSdeleted 100644 → 0 +0 −12 Original line number Diff line number Diff line # If we ever add another OWNERS above this directory, it's likely to be # more permissive, so don't inherit from it set noparent adelva@google.com maennich@google.com saravanak@google.com sspatil@google.com tkjos@google.com willmcvicker@google.com # Downstream boards maintained directly in this manifest branch per-file abi_gki_aarch64_cuttlefish = adelva@google.com, rammuthiah@google.com per-file abi_gki_aarch64_goldfish = rkir@google.com android/abi_gki_aarch64.xml +102602 −106055 File changed.File size exceeds preview limit. View original file View changed file android/abi_gki_aarch64_qcom +1 −0 Original line number Diff line number Diff line Loading @@ -2251,6 +2251,7 @@ snd_card_free_when_closed snd_card_new snd_card_register snd_compr_use_pause_in_draining snd_ctl_add snd_ctl_boolean_mono_info snd_ctl_enum_info Loading drivers/input/misc/uinput.c +34 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define UINPUT_NAME "uinput" #define UINPUT_BUFFER_SIZE 16 #define UINPUT_NUM_REQUESTS 16 #define UINPUT_TIMESTAMP_ALLOWED_OFFSET_SECS 10 enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED }; Loading Loading @@ -569,11 +570,40 @@ static int uinput_setup_device_legacy(struct uinput_device *udev, return retval; } /* * Returns true if the given timestamp is valid (i.e., if all the following * conditions are satisfied), false otherwise. * 1) given timestamp is positive * 2) it's within the allowed offset before the current time * 3) it's not in the future */ static bool is_valid_timestamp(const ktime_t timestamp) { ktime_t zero_time; ktime_t current_time; ktime_t min_time; ktime_t offset; zero_time = ktime_set(0, 0); if (ktime_compare(zero_time, timestamp) >= 0) return false; current_time = ktime_get(); offset = ktime_set(UINPUT_TIMESTAMP_ALLOWED_OFFSET_SECS, 0); min_time = ktime_sub(current_time, offset); if (ktime_after(min_time, timestamp) || ktime_after(timestamp, current_time)) return false; return true; } static ssize_t uinput_inject_events(struct uinput_device *udev, const char __user *buffer, size_t count) { struct input_event ev; size_t bytes = 0; ktime_t timestamp; if (count != 0 && count < input_event_size()) return -EINVAL; Loading @@ -588,6 +618,10 @@ static ssize_t uinput_inject_events(struct uinput_device *udev, if (input_event_from_user(buffer + bytes, &ev)) return -EFAULT; timestamp = ktime_set(ev.input_event_sec, ev.input_event_usec * NSEC_PER_USEC); if (is_valid_timestamp(timestamp)) input_set_timestamp(udev->dev, timestamp); input_event(udev->dev, ev.type, ev.code, ev.value); bytes += input_event_size(); cond_resched(); Loading Loading
OWNERS +12 −2 Original line number Diff line number Diff line # include OWNERS from the authoritative android-mainline branch include kernel/common:android-mainline:/OWNERS set noparent # GKI Dr. No Enforcement is active on this branch. Approval of one of the Dr. # No reviewers is required following a regular CodeReview+2 vote of a code # reviewer. # # See the GKI release documentation (go/gki-dr-no) for further details. # # The expanded list of reviewers can be found at: # https://android.googlesource.com/kernel/common/+/android-mainline/OWNERS_DrNo include kernel/common:android-mainline:/OWNERS_DrNo
android/OWNERSdeleted 100644 → 0 +0 −12 Original line number Diff line number Diff line # If we ever add another OWNERS above this directory, it's likely to be # more permissive, so don't inherit from it set noparent adelva@google.com maennich@google.com saravanak@google.com sspatil@google.com tkjos@google.com willmcvicker@google.com # Downstream boards maintained directly in this manifest branch per-file abi_gki_aarch64_cuttlefish = adelva@google.com, rammuthiah@google.com per-file abi_gki_aarch64_goldfish = rkir@google.com
android/abi_gki_aarch64.xml +102602 −106055 File changed.File size exceeds preview limit. View original file View changed file
android/abi_gki_aarch64_qcom +1 −0 Original line number Diff line number Diff line Loading @@ -2251,6 +2251,7 @@ snd_card_free_when_closed snd_card_new snd_card_register snd_compr_use_pause_in_draining snd_ctl_add snd_ctl_boolean_mono_info snd_ctl_enum_info Loading
drivers/input/misc/uinput.c +34 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define UINPUT_NAME "uinput" #define UINPUT_BUFFER_SIZE 16 #define UINPUT_NUM_REQUESTS 16 #define UINPUT_TIMESTAMP_ALLOWED_OFFSET_SECS 10 enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED }; Loading Loading @@ -569,11 +570,40 @@ static int uinput_setup_device_legacy(struct uinput_device *udev, return retval; } /* * Returns true if the given timestamp is valid (i.e., if all the following * conditions are satisfied), false otherwise. * 1) given timestamp is positive * 2) it's within the allowed offset before the current time * 3) it's not in the future */ static bool is_valid_timestamp(const ktime_t timestamp) { ktime_t zero_time; ktime_t current_time; ktime_t min_time; ktime_t offset; zero_time = ktime_set(0, 0); if (ktime_compare(zero_time, timestamp) >= 0) return false; current_time = ktime_get(); offset = ktime_set(UINPUT_TIMESTAMP_ALLOWED_OFFSET_SECS, 0); min_time = ktime_sub(current_time, offset); if (ktime_after(min_time, timestamp) || ktime_after(timestamp, current_time)) return false; return true; } static ssize_t uinput_inject_events(struct uinput_device *udev, const char __user *buffer, size_t count) { struct input_event ev; size_t bytes = 0; ktime_t timestamp; if (count != 0 && count < input_event_size()) return -EINVAL; Loading @@ -588,6 +618,10 @@ static ssize_t uinput_inject_events(struct uinput_device *udev, if (input_event_from_user(buffer + bytes, &ev)) return -EFAULT; timestamp = ktime_set(ev.input_event_sec, ev.input_event_usec * NSEC_PER_USEC); if (is_valid_timestamp(timestamp)) input_set_timestamp(udev->dev, timestamp); input_event(udev->dev, ev.type, ev.code, ev.value); bytes += input_event_size(); cond_resched(); Loading