search for: virtio_cread_le

Displaying 20 results from an estimated 31 matches for "virtio_cread_le".

2020 Aug 05
1
[PATCH v3 35/38] virtio_mem: convert to LE accessors
...@ static void virtio_mem_refresh_config(struct virtio_mem *vm) uint64_t new_plugged_size, usable_region_size, end_addr; /* the plugged_size is just a reflection of what _we_ did previously */ - virtio_cread(vm->vdev, struct virtio_mem_config, plugged_size, - &new_plugged_size); + virtio_cread_le(vm->vdev, struct virtio_mem_config, plugged_size, + &new_plugged_size); if (WARN_ON_ONCE(new_plugged_size != vm->plugged_size)) vm->plugged_size = new_plugged_size; /* calculate the last usable memory block id */ - virtio_cread(vm->vdev, struct virtio_mem_config, -...
2020 Aug 05
0
[PATCH v3 32/38] virtio_crypto: convert to LE accessors
...a/drivers/crypto/virtio/virtio_crypto_core.c +++ b/drivers/crypto/virtio/virtio_crypto_core.c @@ -204,8 +204,8 @@ static int virtcrypto_update_status(struct virtio_crypto *vcrypto) u32 status; int err; - virtio_cread(vcrypto->vdev, - struct virtio_crypto_config, status, &status); + virtio_cread_le(vcrypto->vdev, + struct virtio_crypto_config, status, &status); /* * Unknown status bits would be a host error and the driver @@ -323,31 +323,31 @@ static int virtcrypto_probe(struct virtio_device *vdev) if (!vcrypto) return -ENOMEM; - virtio_cread(vdev, struct virtio_crypto_...
2020 Aug 05
1
[PATCH v3 30/38] virtio_input: convert to LE accessors
...>vdev, struct virtio_input_config, subsel, &subsel); - virtio_cread(vi->vdev, struct virtio_input_config, size, &size); + virtio_cwrite_le(vi->vdev, struct virtio_input_config, select, &select); + virtio_cwrite_le(vi->vdev, struct virtio_input_config, subsel, &subsel); + virtio_cread_le(vi->vdev, struct virtio_input_config, size, &size); return size; } @@ -158,11 +158,11 @@ static void virtinput_cfg_abs(struct virtio_input *vi, int abs) u32 mi, ma, re, fu, fl; virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ABS_INFO, abs); - virtio_cread(vi->vdev, struct virtio_inpu...
2020 Aug 05
1
[vhost:vhost 32/52] include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
...mmy2); \ | ^~ include/linux/virtio_config.h:405:3: note: in expansion of macro 'typecheck' 405 | typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ | ^~~~~~~~~ drivers/virtio/virtio_input.c:247:3: note: in expansion of macro 'virtio_cread_le' 247 | virtio_cread_le(vi->vdev, struct virtio_input_config, | ^~~~~~~~~~~~~~~ >> include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast 12 | (void)(&__dummy == &__dummy2); \ | ^~ include...
2020 Aug 06
0
[vhost:vhost 32/65] drivers/virtio/virtio_input.c:247:3: warning: comparison of distinct pointer types ('typeof (_Generic((virtio_cread_v), __u8: (virtio_cread_v), __le16: (__builtin_constant_p((__u16)((__u16)(__le16)(virtio_cread_v)))
...e64)(virtio_cread_v)) & (__u64)18374686479671623680ULL) >> 56))) : __fswab64((__u64)(__le64)(virtio_cread_v))))) *' (aka 'int *') and 'typeof (*(&vi->idev->id.bustype)) *' (aka 'unsigned short *')) [-Wcompare-distinct-pointer-types] virtio_cread_le(vi->vdev, struct virtio_input_config, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/virtio_config.h:405:3: note: expanded from macro 'virtio_cread_le' typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \...
2015 Mar 23
2
[PATCH 1/1] Add virtio-input driver.
...entical to __le32. Except that sparse doesn't know that and throws errors when I mix the two. > There's some runtime overhead as we check on each access, > but it shouldn't matter here, right? Correct, config space is used at initialization time only. > I guess we could add virtio_cread_le - is this what > you'd like? I just want something that makes both you and sparse happy. I don't care much whenever that is adding virtio_cread_le() or using __virtio32 even though it'll effectively is __le32 due to VERSION_1 being required. cheers, Gerd
2015 Mar 23
2
[PATCH 1/1] Add virtio-input driver.
...entical to __le32. Except that sparse doesn't know that and throws errors when I mix the two. > There's some runtime overhead as we check on each access, > but it shouldn't matter here, right? Correct, config space is used at initialization time only. > I guess we could add virtio_cread_le - is this what > you'd like? I just want something that makes both you and sparse happy. I don't care much whenever that is adding virtio_cread_le() or using __virtio32 even though it'll effectively is __le32 due to VERSION_1 being required. cheers, Gerd
2020 Aug 05
1
[PATCH v3 38/38] virtio_net: use LE accessors for speed/duplex
...rtio_net.c +++ b/drivers/net/virtio_net.c @@ -2264,12 +2264,13 @@ static void virtnet_update_settings(struct virtnet_info *vi) if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_SPEED_DUPLEX)) return; - speed = virtio_cread32(vi->vdev, offsetof(struct virtio_net_config, - speed)); + virtio_cread_le(vi->vdev, struct virtio_net_config, speed, &speed); + if (ethtool_validate_speed(speed)) vi->speed = speed; - duplex = virtio_cread8(vi->vdev, offsetof(struct virtio_net_config, - duplex)); + + virtio_cread_le(vi->vdev, struct virtio_net_config, duplex, &duplex); +...
2020 Aug 05
1
[PATCH v3 34/38] drm/virtio: convert to LE accessors
...b/drivers/gpu/drm/virtio/virtgpu_kms.c @@ -39,8 +39,8 @@ static void virtio_gpu_config_changed_work_func(struct work_struct *work) u32 events_read, events_clear = 0; /* read the config space */ - virtio_cread(vgdev->vdev, struct virtio_gpu_config, - events_read, &events_read); + virtio_cread_le(vgdev->vdev, struct virtio_gpu_config, + events_read, &events_read); if (events_read & VIRTIO_GPU_EVENT_DISPLAY) { if (vgdev->has_edid) virtio_gpu_cmd_get_edids(vgdev); @@ -49,8 +49,8 @@ static void virtio_gpu_config_changed_work_func(struct work_struct *work) drm_helper...
2015 Mar 23
2
[PATCH 1/1] Add virtio-input driver.
Hi, > > > > You are doing leXXX everywhere, that's VERSION_1 dependency. > > > > virtio_cread will do byteswaps differently without VERSION_1. > > > > Just don't go there. > So to clarify, you dislike using __virtio32 in virtio input header? Well, as I understand things __virtio32 implies byteorder depends on whenever we are using VERSION_1 or not.
2015 Mar 23
2
[PATCH 1/1] Add virtio-input driver.
Hi, > > > > You are doing leXXX everywhere, that's VERSION_1 dependency. > > > > virtio_cread will do byteswaps differently without VERSION_1. > > > > Just don't go there. > So to clarify, you dislike using __virtio32 in virtio input header? Well, as I understand things __virtio32 implies byteorder depends on whenever we are using VERSION_1 or not.
2023 Feb 24
2
[PATCH] drm/virtio: Add option to disable KMS support
...ndif if (virtio_has_feature(vgdev->vdev, VIRTIO_RING_F_INDIRECT_DESC)) { vgdev->has_indirect = true; } @@ -218,6 +220,7 @@ int virtio_gpu_init(struct virtio_device *vdev, struct drm_device *dev) goto err_vbufs; } +#if defined(CONFIG_DRM_VIRTIO_GPU_KMS) /* get display info */ virtio_cread_le(vgdev->vdev, struct virtio_gpu_config, num_scanouts, &num_scanouts); @@ -229,6 +232,7 @@ int virtio_gpu_init(struct virtio_device *vdev, struct drm_device *dev) goto err_scanouts; } DRM_INFO("number of scanouts: %d\n", num_scanouts); +#endif virtio_cread_le(vgdev-&gt...
2023 Feb 28
2
[PATCH v3] drm/virtio: Add option to disable KMS support
...Feb 27, 2023 at 9:57 AM Dmitry Osipenko > <dmitry.osipenko at collabora.com> wrote: >> >> On 2/27/23 20:38, Rob Clark wrote: >> ... >>> + if (IS_ENABLED(CONFIG_DRM_VIRTIO_GPU_KMS)) { >>> + /* get display info */ >>> + virtio_cread_le(vgdev->vdev, struct virtio_gpu_config, >>> + num_scanouts, &num_scanouts); >>> + vgdev->num_scanouts = min_t(uint32_t, num_scanouts, >>> + VIRTIO_GPU_MAX_SCANOUTS); >>> +...
2020 Aug 05
0
[PATCH] virtio_net: use LE accessors for speed/duplex
...rtio_net.c +++ b/drivers/net/virtio_net.c @@ -2264,12 +2264,13 @@ static void virtnet_update_settings(struct virtnet_info *vi) if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_SPEED_DUPLEX)) return; - speed = virtio_cread32(vi->vdev, offsetof(struct virtio_net_config, - speed)); + virtio_cread_le(vi->vdev, struct virtio_net_config, speed, &speed); + if (ethtool_validate_speed(speed)) vi->speed = speed; - duplex = virtio_cread8(vi->vdev, offsetof(struct virtio_net_config, - duplex)); + + virtio_cread_le(vi->vdev, struct virtio_net_config, duplex, &duplex); +...
2020 Aug 05
0
[PATCH v3 29/38] virtio_balloon: use LE config space accesses
...u32 num_pages; - virtio_cread(vb->vdev, struct virtio_balloon_config, num_pages, - &num_pages); - /* Legacy balloon config space is LE, unlike all other devices. */ - if (!virtio_has_feature(vb->vdev, VIRTIO_F_VERSION_1)) - num_pages = le32_to_cpu((__force __le32)num_pages); + virtio_cread_le(vb->vdev, struct virtio_balloon_config, num_pages, + &num_pages); target = num_pages; return target - vb->num_pages; @@ -462,11 +459,8 @@ static void update_balloon_size(struct virtio_balloon *vb) u32 actual = vb->num_pages; /* Legacy balloon config space is LE, unlike al...
2020 Aug 05
1
[PATCH v3 31/38] virtio_fs: convert to LE accessors
...298..104f35de5270 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -606,8 +606,8 @@ static int virtio_fs_setup_vqs(struct virtio_device *vdev, unsigned int i; int ret = 0; - virtio_cread(vdev, struct virtio_fs_config, num_request_queues, - &fs->num_request_queues); + virtio_cread_le(vdev, struct virtio_fs_config, num_request_queues, + &fs->num_request_queues); if (fs->num_request_queues == 0) return -EINVAL; -- MST
2023 Feb 27
1
[PATCH v3] drm/virtio: Add option to disable KMS support
On Mon, Feb 27, 2023 at 9:57 AM Dmitry Osipenko <dmitry.osipenko at collabora.com> wrote: > > On 2/27/23 20:38, Rob Clark wrote: > ... > > + if (IS_ENABLED(CONFIG_DRM_VIRTIO_GPU_KMS)) { > > + /* get display info */ > > + virtio_cread_le(vgdev->vdev, struct virtio_gpu_config, > > + num_scanouts, &num_scanouts); > > + vgdev->num_scanouts = min_t(uint32_t, num_scanouts, > > + VIRTIO_GPU_MAX_SCANOUTS); > > + if...
2023 Aug 31
2
[PATCH v2] virtio_balloon: Fix endless deflation and inflation on arm64
...ns(+), 1 deletion(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 5b15936a5214..2d5d252ef419 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -395,7 +395,11 @@ static inline s64 towards_target(struct virtio_balloon *vb) virtio_cread_le(vb->vdev, struct virtio_balloon_config, num_pages, &num_pages); - target = num_pages; + /* + * Aligned up to guest page size to avoid inflating and deflating + * balloon endlessly. + */ + target = ALIGN(num_pages, VIRTIO_BALLOON_PAGES_PER_PAGE); return target - vb->num_pages;...
2020 Aug 05
0
[PATCH v3 26/38] virtio_config: LE config space accessors
...o_cpu(x), \ + __le32: le32_to_cpu(x), \ + __le64: le64_to_cpu(x) \ + ) + +#define virtio_cpu_to_le(x, m) \ + _Generic((m), \ + __u8: (x), \ + __le16: cpu_to_le16(x), \ + __le32: cpu_to_le32(x), \ + __le64: cpu_to_le64(x) \ + ) + +/* LE (e.g. modern) Config space accessors. */ +#define virtio_cread_le(vdev, structname, member, ptr) \ + do { \ + typeof(((structname*)0)->member) virtio_cread_v; \ + \ + might_sleep(); \ + /* Sanity check: must match the member's type */ \ + typecheck(typeof(virtio_le_to_cpu(virtio_cread_v)), *(ptr)); \ + \ + switch (sizeof(...
2020 Aug 05
0
[PATCH v3 28/38] virtio_config: add virtio_cread_le_feature
...include/linux/virtio_config.h index 5b5196fec899..cc7a2b1fd7b2 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -555,4 +555,14 @@ static inline void virtio_cwrite64(struct virtio_device *vdev, _r; \ }) +/* Conditional config space accessors. */ +#define virtio_cread_le_feature(vdev, fbit, structname, member, ptr) \ + ({ \ + int _r = 0; \ + if (!virtio_has_feature(vdev, fbit)) \ + _r = -ENOENT; \ + else \ + virtio_cread_le((vdev), structname, member, ptr); \ + _r; \ + }) #endif /* _LINUX_VIRTIO_CONFIG_H */ -- MST