lightnvm: refactor phys addrs type to u64

For cases where CONFIG_LBDAF is not set. The struct ppa_addr exceeds its
type on 32 bit architectures. ppa_addr requires a 64bit integer to hold
the generic ppa format. We therefore refactor it to u64 and
replaces the sector_t usages with u64 for physical addresses.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Matias Bjørling
2015-11-02 17:12:27 +01:00
committed by Jens Axboe
parent ca0640850e
commit b7ceb7d500
3 changed files with 25 additions and 26 deletions

View File

@@ -134,26 +134,26 @@ struct ppa_addr {
union {
/* Channel-based PPA format in nand 4x2x2x2x8x10 */
struct {
sector_t ch : 4;
sector_t sec : 2; /* 4 sectors per page */
sector_t pl : 2; /* 4 planes per LUN */
sector_t lun : 2; /* 4 LUNs per channel */
sector_t pg : 8; /* 256 pages per block */
sector_t blk : 10;/* 1024 blocks per plane */
sector_t resved : 36;
u64 ch : 4;
u64 sec : 2; /* 4 sectors per page */
u64 pl : 2; /* 4 planes per LUN */
u64 lun : 2; /* 4 LUNs per channel */
u64 pg : 8; /* 256 pages per block */
u64 blk : 10;/* 1024 blocks per plane */
u64 resved : 36;
} chnl;
/* Generic structure for all addresses */
struct {
sector_t sec : NVM_SEC_BITS;
sector_t pl : NVM_PL_BITS;
sector_t pg : NVM_PG_BITS;
sector_t blk : NVM_BLK_BITS;
sector_t lun : NVM_LUN_BITS;
sector_t ch : NVM_CH_BITS;
u64 sec : NVM_SEC_BITS;
u64 pl : NVM_PL_BITS;
u64 pg : NVM_PG_BITS;
u64 blk : NVM_BLK_BITS;
u64 lun : NVM_LUN_BITS;
u64 ch : NVM_CH_BITS;
} g;
sector_t ppa;
u64 ppa;
};
} __packed;