linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / ieee1394 / highlevel.c
index 491e603..734b121 100644 (file)
@@ -306,7 +306,8 @@ u64 hpsb_allocate_and_register_addrspace(struct hpsb_highlevel *hl,
        u64 align_mask = ~(alignment - 1);
 
        if ((alignment & 3) || (alignment > 0x800000000000ULL) ||
-           (hweight64(alignment) != 1)) {
+           ((hweight32(alignment >> 32) +
+             hweight32(alignment & 0xffffffff) != 1))) {
                HPSB_ERR("%s called with invalid alignment: 0x%048llx",
                         __FUNCTION__, (unsigned long long)alignment);
                return retval;