···23232424static struct input_dev *mac_hid_emumouse_dev;25252626+static DEFINE_MUTEX(mac_hid_emumouse_mutex);2727+2628static int mac_hid_create_emumouse(void)2729{2830 static struct lock_class_key mac_hid_emumouse_dev_event_class;···189187 int old_val = *valp;190188 int rc;191189190190+ rc = mutex_lock_killable(&mac_hid_emumouse_mutex);191191+ if (rc)192192+ return rc;193193+192194 rc = proc_dointvec(table, write, buffer, lenp, ppos);193195194196 if (rc == 0 && write && *valp != old_val) {···207201 /* Restore the old value in case of error */208202 if (rc)209203 *valp = old_val;204204+205205+ mutex_unlock(&mac_hid_emumouse_mutex);210206211207 return rc;212208}