Pull virtio updates from Michael Tsirkin: - new virtio CAN driver - support for LoongArch architecture in fw_cfg - support for firmware notifications in vdpa/octeon_ep - support for VFs in virtio core - fixes, cleanups all over the place, notably: - vhost: fix vhost_get_avail_idx for a non empty ring fixing an significant old perf regression - READ_ONCE() annotations mean virtio ring is now free of KCSAN warnings * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (37 commits) can: virtio: Fix comment in UAPI header can: virtio: Add virtio CAN driver virtio: add num_vf callback to virtio_bus fw_cfg: Add support for LoongArch architecture vdpa/octeon_ep: fix IRQ-to-ring mapping in interrupt handler vdpa/octeon_ep: Add vDPA device event handling for firmware notifications vdpa/octeon_ep: Use 4 bytes for mailbox signature vdpa/octeon_ep: Fix PF->VF mailbox data address calculation vhost_task_create: kill unnecessary .exit_signal initialization vhost: remove unnecessary module_init/exit functions vdpa/mlx5: Use kvzalloc_flex() for MTT command memory vdpa_sim_net: switch to dynamic root device vdpa_sim_blk: switch to dynamic root device virtio-mem: Destroy mutex before freeing virtio_mem virtio-balloon: Destroy mutex before freeing virtio_balloon tools/virtio: fix build for kmalloc_obj API and missing stubs virtio_ring: Add READ_ONCE annotations for device-writable fields vduse: fix compat handling for VDUSE_IOTLB_GET_FD/VDUSE_VQ_GET_INFO tools/virtio: check mmap return value in vringh_test vhost/net: complete zerocopy ubufs only once ...
Showing the changes to include/uapi/linux (2 of 35 files). Show all
Unified · Split
| @@ -0,0 +1,78 @@ | ||
| 1 | +/* SPDX-License-Identifier: BSD-3-Clause */ | |
| 2 | +/* | |
| 3 | + * Copyright (C) 2021-2023 OpenSynergy GmbH | |
| 4 | + * Copyright Red Hat, Inc. 2025 | |
| 5 | + */ | |
| 6 | +#ifndef _LINUX_VIRTIO_VIRTIO_CAN_H | |
| 7 | +#define _LINUX_VIRTIO_VIRTIO_CAN_H | |
| 8 | + | |
| 9 | +#include <linux/types.h> | |
| 10 | +#include <linux/virtio_types.h> | |
| 11 | +#include <linux/virtio_ids.h> | |
| 12 | +#include <linux/virtio_config.h> | |
| 13 | + | |
| 14 | +/* Feature bit numbers */ | |
| 15 | +#define VIRTIO_CAN_F_CAN_CLASSIC 0 | |
| 16 | +#define VIRTIO_CAN_F_CAN_FD 1 | |
| 17 | +#define VIRTIO_CAN_F_RTR_FRAMES 2 | |
| 18 | +#define VIRTIO_CAN_F_LATE_TX_ACK 3 | |
| 19 | + | |
| 20 | +/* CAN Result Types */ | |
| 21 | +#define VIRTIO_CAN_RESULT_OK 0 | |
| 22 | +#define VIRTIO_CAN_RESULT_NOT_OK 1 | |
| 23 | + | |
| 24 | +/* CAN flags to determine type of CAN Id */ | |
| 25 | +#define VIRTIO_CAN_FLAGS_EXTENDED 0x8000 | |
| 26 | +#define VIRTIO_CAN_FLAGS_FD 0x4000 | |
| 27 | +#define VIRTIO_CAN_FLAGS_RTR 0x2000 | |
| 28 | + | |
| 29 | +#define VIRTIO_CAN_MAX_DLEN 64 /* this is like CANFD_MAX_DLEN */ | |
| 30 | + | |
| 31 | +struct virtio_can_config { | |
| 32 | +#define VIRTIO_CAN_S_CTRL_BUSOFF (1u << 0) /* Controller BusOff */ | |
| 33 | + /* CAN controller status */ | |
| 34 | + __le16 status; | |
| 35 | +}; | |
| 36 | + | |
| 37 | +/* TX queue message types */ | |
| 38 | +struct virtio_can_tx_out { | |
| 39 | +#define VIRTIO_CAN_TX 0x0001 | |
| 40 | + __le16 msg_type; | |
| 41 | + __le16 length; /* 0..8 CC, 0..64 CAN-FD, 0..2048 CAN-XL, 12 bits */ | |
| 42 | + __u8 reserved_classic_dlc; /* If CAN classic length = 8 then DLC can be 8..15 */ | |
| 43 | + __u8 padding; | |
| 44 | + __le16 reserved_xl_priority; /* May be needed for CAN XL priority */ | |
| 45 | + __le32 flags; | |
| 46 | + __le32 can_id; | |
| 47 | + __u8 sdu[] __counted_by_le(length); | |
| 48 | +}; | |
| 49 | + | |
| 50 | +struct virtio_can_tx_in { | |
| 51 | + __u8 result; | |
| 52 | +}; | |
| 53 | + | |
| 54 | +/* RX queue message types */ | |
| 55 | +struct virtio_can_rx { | |
| 56 | +#define VIRTIO_CAN_RX 0x0101 | |
| 57 | + __le16 msg_type; | |
| 58 | + __le16 length; /* 0..8 CC, 0..64 CAN-FD, 0..2048 CAN-XL, 12 bits */ | |
| 59 | + __u8 reserved_classic_dlc; /* If CAN classic length = 8 then DLC can be 8..15 */ | |
| 60 | + __u8 padding; | |
| 61 | + __le16 reserved_xl_priority; /* May be needed for CAN XL priority */ | |
| 62 | + __le32 flags; | |
| 63 | + __le32 can_id; | |
| 64 | + __u8 sdu[] __counted_by_le(length); | |
| 65 | +}; | |
| 66 | + | |
| 67 | +/* Control queue message types */ | |
| 68 | +struct virtio_can_control_out { | |
| 69 | +#define VIRTIO_CAN_SET_CTRL_MODE_START 0x0201 | |
| 70 | +#define VIRTIO_CAN_SET_CTRL_MODE_STOP 0x0202 | |
| 71 | + __le16 msg_type; | |
| 72 | +}; | |
| 73 | + | |
| 74 | +struct virtio_can_control_in { | |
| 75 | + __u8 result; | |
| 76 | +}; | |
| 77 | + | |
| 78 | +#endif /* #ifndef _LINUX_VIRTIO_VIRTIO_CAN_H */ | |
| @@ -44,7 +44,7 @@ · 43 unmodified lines | ||
| 44 | 44 | #define VIRTIO_CONSOLE_BAD_ID (~(__u32)0) |
| 45 | 45 | |
| 46 | 46 | struct virtio_console_config { |
| 47 | − /* colums of the screens */ | |
| 47 | + /* columns of the screens */ | |
| 48 | 48 | __virtio16 cols; |
| 49 | 49 | /* rows of the screens */ |
| 50 | 50 | __virtio16 rows; |