Fix struct ht_lock padding in arc.c.
This was leading to a compilation error because in Linux, sizeof (kmutex_t) can be larger than 64 in some circumstances (e.g. with debugging and lockdep enabled). The code was previously fixed to align the structure to 256 bytes, but a better fix is to align it to the next multiple of 64 bytes.
This commit is contained in:
parent
e5fd6fb97f
commit
ba0a56bb2a
|
@ -517,12 +517,13 @@ static void arc_evict_ghost(arc_state_t *state, uint64_t spa, int64_t bytes);
|
|||
* Hash table routines
|
||||
*/
|
||||
|
||||
#define HT_LOCK_PAD 256
|
||||
#define HT_LOCK_ALIGN 64
|
||||
#define HT_LOCK_PAD (P2NPHASE(sizeof (kmutex_t), (HT_LOCK_ALIGN)))
|
||||
|
||||
struct ht_lock {
|
||||
kmutex_t ht_lock;
|
||||
#ifdef _KERNEL
|
||||
unsigned char pad[(HT_LOCK_PAD - sizeof (kmutex_t))];
|
||||
unsigned char pad[HT_LOCK_PAD];
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue