mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
nvme: fix submission queue size
This commit is contained in:
@@ -98,11 +98,27 @@ typedef struct vops_t {
|
||||
int (*resize)(vnode_t *node, size_t newsize, cred_t *cred);
|
||||
} vops_t;
|
||||
|
||||
#define VFS_INIT(v, o, f) \
|
||||
(v)->next = NULL; \
|
||||
(v)->ops = o; \
|
||||
(v)->nodecovered = NULL; \
|
||||
(v)->root = NULL; \
|
||||
(v)->flags = f;
|
||||
|
||||
#define VFS_MOUNT(vfs, mp, b, d) (vfs)->ops->mount(vfs, mp, b, d)
|
||||
#define VFS_UNMOUNT(vfs) (vfs)->ops->unmount(vfs)
|
||||
#define VFS_ROOT(vfs, r) (vfs)->ops->root(vfs, r)
|
||||
#define VFS_SYNC(vfs) (vfs)->ops->sync(vfs)
|
||||
|
||||
#define VOP_INIT(vn, o, f, t, v) \
|
||||
(vn)->ops = o; \
|
||||
SPINLOCK_INIT((vn)->lock); \
|
||||
(vn)->refcount = 1; \
|
||||
(vn)->flags = f; \
|
||||
(vn)->type = t; \
|
||||
(vn)->vfs = v; \
|
||||
(vn)->vfsmounted = NULL;
|
||||
|
||||
#define VOP_LOCK(v) spinlock_acquire(&(v)->lock)
|
||||
#define VOP_UNLOCK(v) spinlock_release(&(v)->lock)
|
||||
|
||||
@@ -130,7 +146,7 @@ typedef struct vops_t {
|
||||
#define VOP_RELEASE(v) {\
|
||||
if (__atomic_sub_fetch(&(v)->refcount, 1, __ATOMIC_SEQ_CST) == 0) {\
|
||||
(v)->ops->inactive(v); \
|
||||
v = NULL; \
|
||||
(v) = NULL; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
@@ -438,7 +438,7 @@ static int createiosubqueue(nvmecontroller_t *controller, queuedesc_t *desc, siz
|
||||
entrypair_t pair = {0};
|
||||
PAIR_INIT(&pair, SUB_DW0_OPCODE_CREATEIOSUBQUEUE, SUB_DW0_UNFUSED, SUB_DW0_PRP, 0);
|
||||
|
||||
size_t size = entrycount * sizeof(compentry_t);
|
||||
size_t size = entrycount * sizeof(subentry_t);
|
||||
size_t pagesize = ROUND_UP(size, PAGE_SIZE) / PAGE_SIZE;
|
||||
|
||||
void *queuepages = pmm_alloc(pagesize, PMM_SECTION_DEFAULT);
|
||||
|
||||
Reference in New Issue
Block a user