mempool_t *iod_mempool;
 
        /* shadow doorbell buffer support: */
-       u32 *dbbuf_dbs;
+       __le32 *dbbuf_dbs;
        dma_addr_t dbbuf_dbs_dma_addr;
-       u32 *dbbuf_eis;
+       __le32 *dbbuf_eis;
        dma_addr_t dbbuf_eis_dma_addr;
 
        /* host memory buffer support: */
 #define NVMEQ_SQ_CMB           1
 #define NVMEQ_DELETE_ERROR     2
 #define NVMEQ_POLLED           3
-       u32 *dbbuf_sq_db;
-       u32 *dbbuf_cq_db;
-       u32 *dbbuf_sq_ei;
-       u32 *dbbuf_cq_ei;
+       __le32 *dbbuf_sq_db;
+       __le32 *dbbuf_cq_db;
+       __le32 *dbbuf_sq_ei;
+       __le32 *dbbuf_cq_ei;
        struct completion delete_done;
 };
 
 }
 
 /* Update dbbuf and return true if an MMIO is required */
-static bool nvme_dbbuf_update_and_check_event(u16 value, u32 *dbbuf_db,
-                                             volatile u32 *dbbuf_ei)
+static bool nvme_dbbuf_update_and_check_event(u16 value, __le32 *dbbuf_db,
+                                             volatile __le32 *dbbuf_ei)
 {
        if (dbbuf_db) {
-               u16 old_value;
+               u16 old_value, event_idx;
 
                /*
                 * Ensure that the queue is written before updating
                 */
                wmb();
 
-               old_value = *dbbuf_db;
-               *dbbuf_db = value;
+               old_value = le32_to_cpu(*dbbuf_db);
+               *dbbuf_db = cpu_to_le32(value);
 
                /*
                 * Ensure that the doorbell is updated before reading the event
                 */
                mb();
 
-               if (!nvme_dbbuf_need_event(*dbbuf_ei, value, old_value))
+               event_idx = le32_to_cpu(*dbbuf_ei);
+               if (!nvme_dbbuf_need_event(event_idx, value, old_value))
                        return false;
        }