[haiku-bugs] [Haiku] #15212: Fix nvme_disk on non-x86

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Tue, 30 Jul 2019 16:41:02 -0000

#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.

Other related posts: