hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/virtio/virtio_input.c
....@@ -1,7 +1,9 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 #include <linux/module.h>
23 #include <linux/virtio.h>
34 #include <linux/virtio_config.h>
45 #include <linux/input.h>
6
+#include <linux/slab.h>
57 #include <linux/input/mt.h>
68
79 #include <uapi/linux/virtio_ids.h>
....@@ -112,9 +114,9 @@
112114 {
113115 u8 size;
114116
115
- virtio_cwrite(vi->vdev, struct virtio_input_config, select, &select);
116
- virtio_cwrite(vi->vdev, struct virtio_input_config, subsel, &subsel);
117
- virtio_cread(vi->vdev, struct virtio_input_config, size, &size);
117
+ virtio_cwrite_le(vi->vdev, struct virtio_input_config, select, &select);
118
+ virtio_cwrite_le(vi->vdev, struct virtio_input_config, subsel, &subsel);
119
+ virtio_cread_le(vi->vdev, struct virtio_input_config, size, &size);
118120 return size;
119121 }
120122
....@@ -157,11 +159,11 @@
157159 u32 mi, ma, re, fu, fl;
158160
159161 virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ABS_INFO, abs);
160
- virtio_cread(vi->vdev, struct virtio_input_config, u.abs.min, &mi);
161
- virtio_cread(vi->vdev, struct virtio_input_config, u.abs.max, &ma);
162
- virtio_cread(vi->vdev, struct virtio_input_config, u.abs.res, &re);
163
- virtio_cread(vi->vdev, struct virtio_input_config, u.abs.fuzz, &fu);
164
- virtio_cread(vi->vdev, struct virtio_input_config, u.abs.flat, &fl);
162
+ virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.min, &mi);
163
+ virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.max, &ma);
164
+ virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.res, &re);
165
+ virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.fuzz, &fu);
166
+ virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.flat, &fl);
165167 input_set_abs_params(vi->idev, abs, mi, ma, fu, fl);
166168 input_abs_set_res(vi->idev, abs, re);
167169 if (abs == ABS_MT_TRACKING_ID) {
....@@ -252,14 +254,14 @@
252254
253255 size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ID_DEVIDS, 0);
254256 if (size >= sizeof(struct virtio_input_devids)) {
255
- virtio_cread(vi->vdev, struct virtio_input_config,
256
- u.ids.bustype, &vi->idev->id.bustype);
257
- virtio_cread(vi->vdev, struct virtio_input_config,
258
- u.ids.vendor, &vi->idev->id.vendor);
259
- virtio_cread(vi->vdev, struct virtio_input_config,
260
- u.ids.product, &vi->idev->id.product);
261
- virtio_cread(vi->vdev, struct virtio_input_config,
262
- u.ids.version, &vi->idev->id.version);
257
+ virtio_cread_le(vi->vdev, struct virtio_input_config,
258
+ u.ids.bustype, &vi->idev->id.bustype);
259
+ virtio_cread_le(vi->vdev, struct virtio_input_config,
260
+ u.ids.vendor, &vi->idev->id.vendor);
261
+ virtio_cread_le(vi->vdev, struct virtio_input_config,
262
+ u.ids.product, &vi->idev->id.product);
263
+ virtio_cread_le(vi->vdev, struct virtio_input_config,
264
+ u.ids.version, &vi->idev->id.version);
263265 } else {
264266 vi->idev->id.bustype = BUS_VIRTUAL;
265267 }
....@@ -371,7 +373,7 @@
371373 static unsigned int features[] = {
372374 /* none */
373375 };
374
-static struct virtio_device_id id_table[] = {
376
+static const struct virtio_device_id id_table[] = {
375377 { VIRTIO_ID_INPUT, VIRTIO_DEV_ANY_ID },
376378 { 0 },
377379 };