[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XenPPC] [RFC] fix stupid grant table flags
I don't think you definition of clear_entry_flag will work, see below On Jun 21, 2006, at 2:49 PM, Hollis Blanchard wrote: diff -r ab08d443113d xen/include/asm-ppc/grant_table.h --- a/xen/include/asm-ppc/grant_table.h Wed Jun 21 13:36:49 2006 -0500 +++ b/xen/include/asm-ppc/grant_table.h Wed Jun 21 13:42:23 2006 -0500 @@ -6,4 +6,6 @@ #define mark_dirty(d, f) ((void )0) #include "../asm-x86/grant_table.h" +#define clear_entry_flag(nr, flags) clear_bit((nr), (int *)(flags)); 1) clear_bit takes an 'unsigned long *' so this should have cause a warning 2) bitops are designed to find the ulong array element (nr / BITS_PER_LONG) then set the bit like (1 << (nr % BITS_PER_LONG)) so that the word feels like 'C' order. So I think the definition should be:static inline void clear_entry_flag(unsigned long nr, volatile uint16_t *addr) { volatile unsigned long *laddr; unsigned long lnr; #ifdef SAFETY_DANCE BUG_ON((ulong)addr % sizeof (ulong)); #endif lnr = (BITS_PER_LONG - (sizeof (*addr) * 8)) + nr; laddr = (volatile unsigned long *)addr; clear_bit(lnr, laddr); } You could macro-tize this, but why. -JX _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |