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
|
* 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 {
|
struct ht_lock {
|
||||||
kmutex_t ht_lock;
|
kmutex_t ht_lock;
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
unsigned char pad[(HT_LOCK_PAD - sizeof (kmutex_t))];
|
unsigned char pad[HT_LOCK_PAD];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue