sl->owner = THIS_MODULE;
        sl->master = dev;
-       set_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);
+       set_bit(W1_SLAVE_ACTIVE, &sl->flags);
 
        memset(&msg, 0, sizeof(msg));
        memcpy(&sl->reg_num, rn, sizeof(sl->reg_num));
 
        sl = w1_slave_search_device(dev, tmp);
        if (sl) {
-               set_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);
+               set_bit(W1_SLAVE_ACTIVE, &sl->flags);
        } else {
                if (rn && tmp->crc == w1_calc_crc8((u8 *)&rn_le, 7))
                        w1_attach_slave_device(dev, tmp);
        struct w1_slave *sl, *sln;
 
        list_for_each_entry(sl, &dev->slist, w1_slave_entry)
-               clear_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);
+               clear_bit(W1_SLAVE_ACTIVE, &sl->flags);
 
        w1_search_devices(dev, search_type, cb);
 
        list_for_each_entry_safe(sl, sln, &dev->slist, w1_slave_entry) {
-               if (!test_bit(W1_SLAVE_ACTIVE, (unsigned long *)&sl->flags) && !--sl->ttl)
+               if (!test_bit(W1_SLAVE_ACTIVE, &sl->flags) && !--sl->ttl)
                        w1_slave_detach(sl);
-               else if (test_bit(W1_SLAVE_ACTIVE, (unsigned long *)&sl->flags))
+               else if (test_bit(W1_SLAVE_ACTIVE, &sl->flags))
                        sl->ttl = dev->slave_ttl;
        }