diff options
Diffstat (limited to 'security/selinux/ss/ebitmap.h')
| -rw-r--r-- | security/selinux/ss/ebitmap.h | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/security/selinux/ss/ebitmap.h b/security/selinux/ss/ebitmap.h index 1f4e93c2ae8..712c8a7b8e8 100644 --- a/security/selinux/ss/ebitmap.h +++ b/security/selinux/ss/ebitmap.h @@ -16,7 +16,13 @@  #include <net/netlabel.h> -#define EBITMAP_UNIT_NUMS	((32 - sizeof(void *) - sizeof(u32))	\ +#ifdef CONFIG_64BIT +#define	EBITMAP_NODE_SIZE	64 +#else +#define	EBITMAP_NODE_SIZE	32 +#endif + +#define EBITMAP_UNIT_NUMS	((EBITMAP_NODE_SIZE-sizeof(void *)-sizeof(u32))\  					/ sizeof(unsigned long))  #define EBITMAP_UNIT_SIZE	BITS_PER_LONG  #define EBITMAP_SIZE		(EBITMAP_UNIT_NUMS * EBITMAP_UNIT_SIZE) @@ -36,7 +42,6 @@ struct ebitmap {  };  #define ebitmap_length(e) ((e)->highbit) -#define ebitmap_startbit(e) ((e)->node ? (e)->node->startbit : 0)  static inline unsigned int ebitmap_start_positive(struct ebitmap *e,  						  struct ebitmap_node **n) @@ -118,7 +123,7 @@ static inline void ebitmap_node_clr_bit(struct ebitmap_node *n,  int ebitmap_cmp(struct ebitmap *e1, struct ebitmap *e2);  int ebitmap_cpy(struct ebitmap *dst, struct ebitmap *src); -int ebitmap_contains(struct ebitmap *e1, struct ebitmap *e2); +int ebitmap_contains(struct ebitmap *e1, struct ebitmap *e2, u32 last_e2bit);  int ebitmap_get_bit(struct ebitmap *e, unsigned long bit);  int ebitmap_set_bit(struct ebitmap *e, unsigned long bit, int value);  void ebitmap_destroy(struct ebitmap *e);  | 
