*/
 
 #include <linux/uaccess.h>
-#include <linux/bitops.h>
+#include <linux/bitmap.h>
 #include <linux/capability.h>
 #include <linux/cpu.h>
 #include <linux/types.h>
                        return -EINVAL;
 
                /* Use one page as a bit array of possible slots */
-               inuse = (unsigned long *) get_zeroed_page(GFP_ATOMIC);
+               inuse = bitmap_zalloc(max_netdevices, GFP_ATOMIC);
                if (!inuse)
                        return -ENOMEM;
 
                }
 
                i = find_first_zero_bit(inuse, max_netdevices);
-               free_page((unsigned long) inuse);
+               bitmap_free(inuse);
        }
 
        snprintf(buf, IFNAMSIZ, name, i);