From: Kylene Jo Hall Use set_bit() and clear_bit() for dev_mask manipulation. Signed-off-by: Kylie Hall Signed-off-by: Andrew Morton --- drivers/char/tpm/tpm.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff -puN drivers/char/tpm/tpm.c~tpm-use-clear_bit drivers/char/tpm/tpm.c --- devel/drivers/char/tpm/tpm.c~tpm-use-clear_bit 2006-04-14 23:42:05.000000000 -0700 +++ devel-akpm/drivers/char/tpm/tpm.c 2006-04-14 23:42:05.000000000 -0700 @@ -32,7 +32,7 @@ enum tpm_const { TPM_MINOR = 224, /* officially assigned */ TPM_BUFSIZE = 2048, TPM_NUM_DEVICES = 256, - TPM_NUM_MASK_ENTRIES = TPM_NUM_DEVICES / (8 * sizeof(int)) + TPM_NUM_MASK_ENTRIES = TPM_NUM_DEVICES / (8 * sizeof(unsigned long)) }; enum tpm_duration { @@ -48,7 +48,7 @@ enum tpm_duration { static LIST_HEAD(tpm_chip_list); static DEFINE_SPINLOCK(driver_lock); -static int dev_mask[TPM_NUM_MASK_ENTRIES]; +static unsigned long dev_mask[TPM_NUM_MASK_ENTRIES]; /* * Array with one entry per ordinal defining the maximum amount @@ -1038,8 +1038,7 @@ void tpm_remove_hardware(struct device * sysfs_remove_group(&dev->kobj, chip->vendor.attr_group); tpm_bios_log_teardown(chip->bios_dir); - dev_mask[chip->dev_num / TPM_NUM_MASK_ENTRIES] &= - ~(1 << (chip->dev_num % TPM_NUM_MASK_ENTRIES)); + clear_bit(chip->dev_num , dev_mask); kfree(chip); @@ -1123,7 +1122,7 @@ struct tpm_chip *tpm_register_hardware(s if ((dev_mask[i] & (1 << j)) == 0) { chip->dev_num = i * TPM_NUM_MASK_ENTRIES + j; - dev_mask[i] |= 1 << j; + set_bit(chip->dev_num, dev_mask); goto dev_num_search_complete; } _