mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 02:40:11 +01:00
pan/kmod,panvk: use uint64_t and not size_t for device sizes
When the host process is 32-bit, size_t can not express all of the device address space. Note that there's still a lot of code that uses size_t for device sizes remaining. Cleaning that up is left for future MRs. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37288>
This commit is contained in:
parent
e9f23edf17
commit
1a0e7d18a2
9 changed files with 25 additions and 21 deletions
|
|
@ -80,7 +80,7 @@ pan_kmod_dev_destroy(struct pan_kmod_dev *dev)
|
|||
|
||||
struct pan_kmod_bo *
|
||||
pan_kmod_bo_alloc(struct pan_kmod_dev *dev, struct pan_kmod_vm *exclusive_vm,
|
||||
size_t size, uint32_t flags)
|
||||
uint64_t size, uint32_t flags)
|
||||
{
|
||||
struct pan_kmod_bo *bo;
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ struct pan_kmod_bo {
|
|||
int32_t refcnt;
|
||||
|
||||
/* Size of the buffer object. */
|
||||
size_t size;
|
||||
uint64_t size;
|
||||
|
||||
/* Handle attached to the buffer object. */
|
||||
uint32_t handle;
|
||||
|
|
@ -295,7 +295,7 @@ struct pan_kmod_vm_op {
|
|||
uint64_t start;
|
||||
|
||||
/* Size of the VA range */
|
||||
size_t size;
|
||||
uint64_t size;
|
||||
} va;
|
||||
|
||||
union {
|
||||
|
|
@ -377,7 +377,7 @@ struct pan_kmod_ops {
|
|||
*/
|
||||
struct pan_kmod_bo *(*bo_alloc)(struct pan_kmod_dev *dev,
|
||||
struct pan_kmod_vm *exclusive_vm,
|
||||
size_t size, uint32_t flags);
|
||||
uint64_t size, uint32_t flags);
|
||||
|
||||
/* Free buffer object. */
|
||||
void (*bo_free)(struct pan_kmod_bo *bo);
|
||||
|
|
@ -386,7 +386,7 @@ struct pan_kmod_ops {
|
|||
* Return NULL if the import fails for any reason.
|
||||
*/
|
||||
struct pan_kmod_bo *(*bo_import)(struct pan_kmod_dev *dev, uint32_t handle,
|
||||
size_t size, uint32_t flags);
|
||||
uint64_t size, uint32_t flags);
|
||||
|
||||
/* Post export operations.
|
||||
* Return 0 on success, -1 otherwise.
|
||||
|
|
@ -526,7 +526,7 @@ pan_kmod_dev_get_user_priv(struct pan_kmod_dev *dev)
|
|||
|
||||
struct pan_kmod_bo *pan_kmod_bo_alloc(struct pan_kmod_dev *dev,
|
||||
struct pan_kmod_vm *exclusive_vm,
|
||||
size_t size, uint32_t flags);
|
||||
uint64_t size, uint32_t flags);
|
||||
|
||||
static inline struct pan_kmod_bo *
|
||||
pan_kmod_bo_get(struct pan_kmod_bo *bo)
|
||||
|
|
@ -616,7 +616,7 @@ pan_kmod_bo_mmap(struct pan_kmod_bo *bo, off_t bo_offset, size_t size, int prot,
|
|||
{
|
||||
off_t mmap_offset;
|
||||
|
||||
if (bo_offset + size > bo->size)
|
||||
if ((uint64_t)bo_offset + (uint64_t)size > bo->size)
|
||||
return MAP_FAILED;
|
||||
|
||||
mmap_offset = bo->dev->ops->bo_get_mmap_offset(bo);
|
||||
|
|
@ -639,7 +639,7 @@ pan_kmod_set_bo_label(struct pan_kmod_dev *dev, struct pan_kmod_bo *bo, const ch
|
|||
dev->ops->bo_set_label(dev, bo, label);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
static inline uint64_t
|
||||
pan_kmod_bo_size(struct pan_kmod_bo *bo)
|
||||
{
|
||||
return bo->size;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ pan_kmod_dev_free(const struct pan_kmod_dev *dev, void *data)
|
|||
|
||||
static inline void
|
||||
pan_kmod_bo_init(struct pan_kmod_bo *bo, struct pan_kmod_dev *dev,
|
||||
struct pan_kmod_vm *exclusive_vm, size_t size, uint32_t flags,
|
||||
struct pan_kmod_vm *exclusive_vm, uint64_t size, uint32_t flags,
|
||||
uint32_t handle)
|
||||
{
|
||||
bo->dev = dev;
|
||||
|
|
|
|||
|
|
@ -237,9 +237,13 @@ to_panfrost_bo_flags(struct pan_kmod_dev *dev, uint32_t flags)
|
|||
|
||||
static struct pan_kmod_bo *
|
||||
panfrost_kmod_bo_alloc(struct pan_kmod_dev *dev,
|
||||
struct pan_kmod_vm *exclusive_vm, size_t size,
|
||||
struct pan_kmod_vm *exclusive_vm, uint64_t size,
|
||||
uint32_t flags)
|
||||
{
|
||||
/* The ioctl uses u32 for size. */
|
||||
if ((uint64_t)(uint32_t)size != size)
|
||||
return NULL;
|
||||
|
||||
/* We can't map GPU uncached. */
|
||||
if (flags & PAN_KMOD_BO_FLAG_GPU_UNCACHED)
|
||||
return NULL;
|
||||
|
|
@ -276,7 +280,7 @@ panfrost_kmod_bo_free(struct pan_kmod_bo *bo)
|
|||
}
|
||||
|
||||
static struct pan_kmod_bo *
|
||||
panfrost_kmod_bo_import(struct pan_kmod_dev *dev, uint32_t handle, size_t size,
|
||||
panfrost_kmod_bo_import(struct pan_kmod_dev *dev, uint32_t handle, uint64_t size,
|
||||
uint32_t flags)
|
||||
{
|
||||
struct panfrost_kmod_bo *panfrost_bo =
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ struct panthor_kmod_va_collect {
|
|||
uint64_t va;
|
||||
|
||||
/* Size of the VA range to release. */
|
||||
size_t size;
|
||||
uint64_t size;
|
||||
};
|
||||
|
||||
struct panthor_kmod_vm {
|
||||
|
|
@ -331,7 +331,7 @@ to_panthor_bo_flags(uint32_t flags)
|
|||
|
||||
static struct pan_kmod_bo *
|
||||
panthor_kmod_bo_alloc(struct pan_kmod_dev *dev,
|
||||
struct pan_kmod_vm *exclusive_vm, size_t size,
|
||||
struct pan_kmod_vm *exclusive_vm, uint64_t size,
|
||||
uint32_t flags)
|
||||
{
|
||||
/* We don't support allocating on-fault. */
|
||||
|
|
@ -400,7 +400,7 @@ panthor_kmod_bo_free(struct pan_kmod_bo *bo)
|
|||
}
|
||||
|
||||
static struct pan_kmod_bo *
|
||||
panthor_kmod_bo_import(struct pan_kmod_dev *dev, uint32_t handle, size_t size,
|
||||
panthor_kmod_bo_import(struct pan_kmod_dev *dev, uint32_t handle, uint64_t size,
|
||||
uint32_t flags)
|
||||
{
|
||||
struct panthor_kmod_bo *panthor_bo =
|
||||
|
|
@ -820,7 +820,7 @@ panthor_kmod_vm_destroy(struct pan_kmod_vm *vm)
|
|||
}
|
||||
|
||||
static uint64_t
|
||||
panthor_kmod_vm_alloc_va(struct panthor_kmod_vm *panthor_vm, size_t size)
|
||||
panthor_kmod_vm_alloc_va(struct panthor_kmod_vm *panthor_vm, uint64_t size)
|
||||
{
|
||||
uint64_t va;
|
||||
|
||||
|
|
@ -837,7 +837,7 @@ panthor_kmod_vm_alloc_va(struct panthor_kmod_vm *panthor_vm, size_t size)
|
|||
|
||||
static void
|
||||
panthor_kmod_vm_free_va(struct panthor_kmod_vm *panthor_vm, uint64_t va,
|
||||
size_t size)
|
||||
uint64_t size)
|
||||
{
|
||||
assert(panthor_vm->base.flags & PAN_KMOD_VM_FLAG_AUTO_VA);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ struct panvk_subqueue {
|
|||
|
||||
struct {
|
||||
struct pan_kmod_bo *bo;
|
||||
size_t size;
|
||||
uint64_t size;
|
||||
struct {
|
||||
uint64_t dev;
|
||||
void *host;
|
||||
|
|
@ -57,7 +57,7 @@ struct panvk_subqueue {
|
|||
struct panvk_desc_ringbuf {
|
||||
struct panvk_priv_mem syncobj;
|
||||
struct pan_kmod_bo *bo;
|
||||
size_t size;
|
||||
uint64_t size;
|
||||
struct {
|
||||
uint64_t dev;
|
||||
void *host;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include "genxml/decode.h"
|
||||
|
||||
VkResult
|
||||
panvk_priv_bo_create(struct panvk_device *dev, size_t size, uint32_t flags,
|
||||
panvk_priv_bo_create(struct panvk_device *dev, uint64_t size, uint32_t flags,
|
||||
VkSystemAllocationScope scope, struct panvk_priv_bo **out)
|
||||
{
|
||||
VkResult result;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ struct panvk_priv_bo {
|
|||
} addr;
|
||||
};
|
||||
|
||||
VkResult panvk_priv_bo_create(struct panvk_device *dev, size_t size,
|
||||
VkResult panvk_priv_bo_create(struct panvk_device *dev, uint64_t size,
|
||||
uint32_t flags, VkSystemAllocationScope scope,
|
||||
struct panvk_priv_bo **out);
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ panvk_utrace_create_buffer(struct u_trace_context *utctx, uint64_t size_B)
|
|||
|
||||
if (!addr_dev) {
|
||||
mesa_loge("Couldn't allocate utrace buffer (size = 0x%" PRIx64 ")."
|
||||
"Provide larger PANVK_UTRACE_CLONE_MEM_SIZE (current = 0x%zx)",
|
||||
"Provide larger PANVK_UTRACE_CLONE_MEM_SIZE (current = 0x%" PRIx64 ")",
|
||||
size_B, dev->utrace.copy_buf_heap_bo->bo->size);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue