#15212: Fix nvme_disk on non-x86
-------------------------------+------------------------------
Reporter: kallisti5 | Owner: waddlesplash
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Drivers/Disk/NVMe | Version: R1/Development
Keywords: | Blocked By:
Blocking: | Has a Patch: 0
Platform: All |
-------------------------------+------------------------------
nvme_disk has some type-size assertions which are failing on non-x86. Fix
nvme_disk to function across all supported architectures.
{{{
C++ objects/haiku/arm/release/add-
ons/kernel/drivers/disk/nvme/libnvme_haiku.o
In file included from ../haiku/src/add-
ons/kernel/drivers/disk/nvme/compat/libnvme_haiku.cpp:16:
../haiku/src/add-ons/kernel/drivers/disk/nvme/compat/libnvme_haiku.cpp: In
function 'phys_addr_t nvme_mem_vtophys(void*)':
../haiku/src/add-ons/kernel/drivers/disk/nvme/compat/nvme_mem.h:25:29:
warning: conversion from 'long long unsigned int' to 'phys_addr_t' {aka
'unsigned int'} changes value from '18446744073709551615' to '4294967295'
[-Woverflow]
#define NVME_VTOPHYS_ERROR (~0ULL)
~^~~~~~
../haiku/src/add-
ons/kernel/drivers/disk/nvme/compat/libnvme_haiku.cpp:88:10: note: in
expansion of macro 'NVME_VTOPHYS_ERROR'
return NVME_VTOPHYS_ERROR;
^~~~~~~~~~~~~~~~~~
Cc objects/haiku/arm/release/add-ons/kernel/drivers/disk/nvme/nvme.o
In file included from ../haiku/src/add-
ons/kernel/drivers/disk/nvme/libnvme/nvme.h:54,
from ../haiku/src/add-
ons/kernel/drivers/disk/nvme/libnvme/nvme_common.h:60,
from ../haiku/src/add-
ons/kernel/drivers/disk/nvme/libnvme/nvme_internal.h:37,
from ../haiku/src/add-
ons/kernel/drivers/disk/nvme/libnvme/nvme.c:34:
../haiku/src/add-ons/kernel/drivers/disk/nvme/libnvme/nvme_spec.h:79:39:
error: static assertion failed: "nvme_tracker is not 4K"
#define nvme_static_assert(cond, msg) _Static_assert(cond, msg)
^~~~~~~~~~~~~~
../haiku/src/add-
ons/kernel/drivers/disk/nvme/libnvme/nvme_internal.h:336:1: note: in
expansion of macro 'nvme_static_assert'
nvme_static_assert(sizeof(struct nvme_tracker) == 4096,
^~~~~~~~~~~~~~~~~~
}}}
--
Ticket URL: <https://dev.haiku-os.org/ticket/15212>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.