search for: u32_max

Displaying 20 results from an estimated 52 matches for "u32_max".

2023 May 10
3
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
Both split ring and packed ring use 32bits to describe the length of a descriptor: see struct vring_desc and struct vring_packed_desc. This means the max segment size supported by virtio is U32_MAX. An example of virtio_max_dma_size in virtio_blk.c: u32 v, max_size; max_size = virtio_max_dma_size(vdev); -> implicit convert err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, struct virtio_blk_config, size_max, &v); max_size = min(max_size, v);...
2023 May 10
2
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
On Wed, 10 May 2023 10:54:37 +0800, zhenwei pi <pizhenwei at bytedance.com> wrote: > Both split ring and packed ring use 32bits to describe the length of > a descriptor: see struct vring_desc and struct vring_packed_desc. > This means the max segment size supported by virtio is U32_MAX. > > An example of virtio_max_dma_size in virtio_blk.c: > u32 v, max_size; > > max_size = virtio_max_dma_size(vdev); -> implicit convert > err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, > struct virtio_blk_config, size_max, &v...
2023 Sep 04
1
[PATCH] virtio-blk: fix implicit overflow on virtio_max_dma_size
The following codes have an implicit conversion from size_t to u32: (u32)max_size = (size_t)virtio_max_dma_size(vdev); This may lead overflow, Ex (size_t)4G -> (u32)0. Once virtio_max_dma_size() has a larger size than U32_MAX, use U32_MAX instead. Signed-off-by: zhenwei pi <pizhenwei at bytedance.com> --- drivers/block/virtio_blk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 1fe011676d07..4a4b9bad551e 100644 --- a/drivers/bl...
2023 May 10
1
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
On Wed, May 10, 2023 at 10:54:37AM +0800, zhenwei pi wrote: > Both split ring and packed ring use 32bits to describe the length of > a descriptor: see struct vring_desc and struct vring_packed_desc. > This means the max segment size supported by virtio is U32_MAX. > > An example of virtio_max_dma_size in virtio_blk.c: > u32 v, max_size; > > max_size = virtio_max_dma_size(vdev); -> implicit convert > err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, > struct virtio_blk_config, size_max, &amp...
2023 Jul 04
1
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
On Wed, May 10, 2023 at 10:54:37AM +0800, zhenwei pi wrote: > Both split ring and packed ring use 32bits to describe the length of > a descriptor: see struct vring_desc and struct vring_packed_desc. > This means the max segment size supported by virtio is U32_MAX. > > An example of virtio_max_dma_size in virtio_blk.c: > u32 v, max_size; > > max_size = virtio_max_dma_size(vdev); -> implicit convert > err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, > struct virtio_blk_config, size_max, &amp...
2023 May 10
1
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
...0 May 2023 10:54:37 +0800, zhenwei pi <pizhenwei at bytedance.com> wrote: > > Both split ring and packed ring use 32bits to describe the length of > > a descriptor: see struct vring_desc and struct vring_packed_desc. > > This means the max segment size supported by virtio is U32_MAX. > > > > An example of virtio_max_dma_size in virtio_blk.c: > > u32 v, max_size; > > > > max_size = virtio_max_dma_size(vdev); -> implicit convert > > err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, > > struct...
2023 May 10
1
[PATCH] virtio_ring: use u32 for virtio_max_dma_size
...4:37 +0800, zhenwei pi <pizhenwei at bytedance.com> wrote: > > > Both split ring and packed ring use 32bits to describe the length of > > > a descriptor: see struct vring_desc and struct vring_packed_desc. > > > This means the max segment size supported by virtio is U32_MAX. > > > > > > An example of virtio_max_dma_size in virtio_blk.c: > > > u32 v, max_size; > > > > > > max_size = virtio_max_dma_size(vdev); -> implicit convert > > > err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX, > > >...
2025 Jan 10
0
[PATCH v2 02/25] drm/dumb-buffers: Provide helper to set pitch and size
...ch = args->pitch; >> + u32 size; >> + >> + if (!pitch) >> + return -EINVAL; >> + >> + if (pitch_align) >> + pitch = roundup(pitch, pitch_align); >> + >> + /* overflow checks for 32bit size calculations */ >> + if (args->height > U32_MAX / pitch) >> + return -EINVAL; >> + >> + if (!size_align) >> + size_align = PAGE_SIZE; >> + else if (!IS_ALIGNED(size_align, PAGE_SIZE)) >> + return -EINVAL; >> + >> + size = ALIGN(args->height * pitch, size_align); >> + if (!size) >>...
2025 Jan 09
1
[PATCH v2 13/25] drm/msm: Compute dumb-buffer sizes with drm_mode_size_dumb()
...tch alignment. + */ + fourcc = drm_driver_color_mode_format(dev, args->bpp); + if (fourcc == DRM_FORMAT_INVALID) + return -EINVAL; + info = drm_format_info(fourcc); + if (!info) + return -EINVAL; + pitch_align = drm_format_info_min_pitch(info, 0, SZ_32); + if (!pitch_align || pitch_align > U32_MAX) + return -EINVAL; + ret = drm_mode_size_dumb(dev, args, pitch_align, 0); + if (ret) + return ret; + return msm_gem_new_handle(dev, file, args->size, MSM_BO_SCANOUT | MSM_BO_WC, &args->handle, "dumb"); } -- 2.47.1
2025 Jan 09
1
[PATCH v2 10/25] drm/imx/ipuv3: Compute dumb-buffer sizes with drm_mode_size_dumb()
...located buffer. + */ + fourcc = drm_driver_color_mode_format(drm, args->bpp); + if (fourcc == DRM_FORMAT_INVALID) + return -EINVAL; + info = drm_format_info(fourcc); + if (!info) + return -EINVAL; + pitch_align = drm_format_info_min_pitch(info, 0, SZ_8); + if (!pitch_align || pitch_align > U32_MAX) + return -EINVAL; + ret = drm_mode_size_dumb(drm, args, pitch_align, 0); if (ret) return ret; - args->width = width; - return ret; + return drm_gem_dma_dumb_create(file_priv, drm, args); } static const struct drm_driver imx_drm_driver = { -- 2.47.1
2025 Jan 13
0
[PATCH v2 02/25] drm/dumb-buffers: Provide helper to set pitch and size
...== DRM_FORMAT_INVALID) >>>> + return -EINVAL; >>>> + info = drm_format_info(fourcc); >>>> + if (!info) >>>> + return -EINVAL; >>>> + pitch = drm_format_info_min_pitch(info, 0, args->width); >>>> + if (!pitch || pitch > U32_MAX) >>>> + return -EINVAL; >>>> + >>>> + args->pitch = pitch; >>>> + >>>> + return drm_mode_align_dumb(args, pitch_align, size_align); >>>> +} >>>> +EXPORT_SYMBOL(drm_mode_size_dumb); >>>> + >>&gt...
2025 Jan 09
25
[PATCH v2 00/25] drm/dumb-buffers: Fix and improve buffer-size calculation
Dumb-buffer pitch and size is specified by width, height, bits-per-pixel plus various hardware-specific alignments. The calculation of these values is inconsistent and duplicated among drivers. The results for formats with bpp < 8 are incorrect. This series fixes this for most drivers. Default scanline pitch and buffer size are now calculated with the existing 4CC helpers. There is a new
2019 May 24
0
[PATCH] VMCI: Fix integer overflow in VMCI handle arrays
...RAY_HEADER_SIZE \ + offsetof(struct vmci_handle_arr, entries) +/* Select a default capacity that results in a 64 byte sized array */ +#define VMCI_HANDLE_ARRAY_DEFAULT_CAPACITY 6 +/* Make sure that the max array size can be expressed by a u32 */ +#define VMCI_HANDLE_ARRAY_MAX_CAPACITY \ + ((U32_MAX - VMCI_HANDLE_ARRAY_HEADER_SIZE - 1) / \ + sizeof(struct vmci_handle)) + +struct vmci_handle_arr *vmci_handle_arr_create(u32 capacity, u32 max_capacity); void vmci_handle_arr_destroy(struct vmci_handle_arr *array); -void vmci_handle_arr_append_entry(struct vmci_handle_arr **array_ptr, - struc...
2019 Oct 14
0
[PATCH 03/25] crypto: virtio - switch to skcipher API
...TO_SYM_OP_CIPHER); req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(ivsize); req_data->u.sym_req.u.cipher.para.src_data_len = - cpu_to_le32(req->nbytes); + cpu_to_le32(req->cryptlen); dst_len = virtio_crypto_alg_sg_nents_length(req->dst); if (unlikely(dst_len > U32_MAX)) { @@ -406,9 +407,9 @@ __virtio_crypto_ablkcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req, } pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", - req->nbytes, dst_len); + req->cryptlen, dst_len); - if (unlikely(req->nbytes + dst_len + ivsize + + if (...
2019 Oct 24
0
[PATCH v2 03/27] crypto: virtio - switch to skcipher API
...TO_SYM_OP_CIPHER); req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(ivsize); req_data->u.sym_req.u.cipher.para.src_data_len = - cpu_to_le32(req->nbytes); + cpu_to_le32(req->cryptlen); dst_len = virtio_crypto_alg_sg_nents_length(req->dst); if (unlikely(dst_len > U32_MAX)) { @@ -406,9 +407,9 @@ __virtio_crypto_ablkcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req, } pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", - req->nbytes, dst_len); + req->cryptlen, dst_len); - if (unlikely(req->nbytes + dst_len + ivsize + + if (...
2016 Nov 27
2
[PATCH v2 2/2] crypto: add virtio-crypto driver
...SYM_OP_CIPHER); > + req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(AES_BLOCK_SIZE); > + req_data->u.sym_req.u.cipher.para.src_data_len = > + cpu_to_le32(req->nbytes); > + > + dst_len = virtio_crypto_alg_sg_nents_length(req->dst); > + if (unlikely(dst_len > U32_MAX)) { > + pr_err("virtio_crypto: The dst_len is beyond U32_MAX\n"); > + err = -EINVAL; > + goto free; > + } > + > + pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", > + req->nbytes, dst_len); > + > + if (unlikely(req->nbytes + dst_len +...
2016 Nov 27
2
[PATCH v2 2/2] crypto: add virtio-crypto driver
...SYM_OP_CIPHER); > + req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(AES_BLOCK_SIZE); > + req_data->u.sym_req.u.cipher.para.src_data_len = > + cpu_to_le32(req->nbytes); > + > + dst_len = virtio_crypto_alg_sg_nents_length(req->dst); > + if (unlikely(dst_len > U32_MAX)) { > + pr_err("virtio_crypto: The dst_len is beyond U32_MAX\n"); > + err = -EINVAL; > + goto free; > + } > + > + pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", > + req->nbytes, dst_len); > + > + if (unlikely(req->nbytes + dst_len +...
2016 Nov 28
0
[virtio-dev] Re: [PATCH v2 2/2] crypto: add virtio-crypto driver
...a->u.sym_req.u.cipher.para.iv_len = > cpu_to_le32(AES_BLOCK_SIZE); > > + req_data->u.sym_req.u.cipher.para.src_data_len = > > + cpu_to_le32(req->nbytes); > > + > > + dst_len = virtio_crypto_alg_sg_nents_length(req->dst); > > + if (unlikely(dst_len > U32_MAX)) { > > + pr_err("virtio_crypto: The dst_len is beyond U32_MAX\n"); > > + err = -EINVAL; > > + goto free; > > + } > > + > > + pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", > > + req->nbytes, dst_len); > > + > &...
2016 Nov 22
0
[PATCH v2 2/2] crypto: add virtio-crypto driver
...e = cpu_to_le32(VIRTIO_CRYPTO_SYM_OP_CIPHER); + req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(AES_BLOCK_SIZE); + req_data->u.sym_req.u.cipher.para.src_data_len = + cpu_to_le32(req->nbytes); + + dst_len = virtio_crypto_alg_sg_nents_length(req->dst); + if (unlikely(dst_len > U32_MAX)) { + pr_err("virtio_crypto: The dst_len is beyond U32_MAX\n"); + err = -EINVAL; + goto free; + } + + pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", + req->nbytes, dst_len); + + if (unlikely(req->nbytes + dst_len + AES_BLOCK_SIZE + + sizeof(vc_req->status...
2016 Nov 28
0
[PATCH v3] crypto: add virtio-crypto driver
...e = cpu_to_le32(VIRTIO_CRYPTO_SYM_OP_CIPHER); + req_data->u.sym_req.u.cipher.para.iv_len = cpu_to_le32(AES_BLOCK_SIZE); + req_data->u.sym_req.u.cipher.para.src_data_len = + cpu_to_le32(req->nbytes); + + dst_len = virtio_crypto_alg_sg_nents_length(req->dst); + if (unlikely(dst_len > U32_MAX)) { + pr_err("virtio_crypto: The dst_len is beyond U32_MAX\n"); + err = -EINVAL; + goto free; + } + + pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n", + req->nbytes, dst_len); + + if (unlikely(req->nbytes + dst_len + AES_BLOCK_SIZE + + sizeof(vc_req->status...