Opened 5 years ago
Closed 3 years ago
#15212 closed bug (fixed)
Fix nvme_disk on non-x86
Reported by: | kallisti5 | Owned by: | waddlesplash |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta4 |
Component: | Drivers/Disk/NVMe | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
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, ^~~~~~~~~~~~~~~~~~
Change History (2)
comment:1 by , 5 years ago
comment:2 by , 3 years ago
Milestone: | Unscheduled → R1/beta4 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed in hrev55470.
Note:
See TracTickets
for help on using tickets.
That static_assert failing is extremely worrying, because all of those fields are supposed to be filled with only fixed size types. Are you sure that you don't have some sort of sizing issue of the int types on ARM?