switch (ud->match_data->type) {
        case DMA_TYPE_UDMA:
                dev_info(dev,
-                        "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
+                        "Channels: %d (tchan: %lu, rchan: %lu, gp-rflow: %lu)\n",
                         ch_count,
                         ud->tchan_cnt - bitmap_weight(ud->tchan_map,
                                                       ud->tchan_cnt),
                break;
        case DMA_TYPE_BCDMA:
                dev_info(dev,
-                        "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
+                        "Channels: %d (bchan: %lu, tchan: %lu, rchan: %lu)\n",
                         ch_count,
                         ud->bchan_cnt - bitmap_weight(ud->bchan_map,
                                                       ud->bchan_cnt),
                break;
        case DMA_TYPE_PKTDMA:
                dev_info(dev,
-                        "Channels: %d (tchan: %u, rchan: %u)\n",
+                        "Channels: %d (tchan: %lu, rchan: %lu)\n",
                         ch_count,
                         ud->tchan_cnt - bitmap_weight(ud->tchan_map,
                                                       ud->tchan_cnt),
 
                        set_bit(i, adev->gfx.mec.queue_bitmap);
        }
 
-       dev_dbg(adev->dev, "mec queue bitmap weight=%d\n", bitmap_weight(adev->gfx.mec.queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES));
+       dev_dbg(adev->dev, "mec queue bitmap weight=%ld\n", bitmap_weight(adev->gfx.mec.queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES));
 }
 
 void amdgpu_gfx_graphics_queue_acquire(struct amdgpu_device *adev)
 
                                                     power_domains);
        enum intel_display_power_domain domain;
 
-       drm_dbg(&i915->drm, "%s (%d):\n", prefix, bitmap_weight(mask->bits, POWER_DOMAIN_NUM));
+       drm_dbg(&i915->drm, "%s (%ld):\n", prefix, bitmap_weight(mask->bits, POWER_DOMAIN_NUM));
        for_each_power_domain(domain, mask)
                drm_dbg(&i915->drm, "%s use_count %d\n",
                        intel_display_power_domain_str(domain),
 
        }
 
        drm_printf(p, "TOTAL:\t%d\t(of %d)\n", total, smp->blk_cnt);
-       drm_printf(p, "AVAIL:\t%d\n", smp->blk_cnt -
+       drm_printf(p, "AVAIL:\t%ld\n", smp->blk_cnt -
                        bitmap_weight(state->state, smp->blk_cnt));
 
        if (drm_can_sleep())
 
                                 struct device_attribute *attr, char *buf)
 {
        struct intel_iommu *iommu = dev_to_intel_iommu(dev);
-       return sprintf(buf, "%d\n", bitmap_weight(iommu->domain_ids,
+       return sprintf(buf, "%ld\n", bitmap_weight(iommu->domain_ids,
                                                  cap_ndoms(iommu->cap)));
 }
 static DEVICE_ATTR_RO(domains_used);
 
 
                field = min(
                        bitmap_weight(actv_ports.ports, dev->caps.num_ports),
-                       dev->caps.num_ports);
+                       (unsigned long)dev->caps.num_ports);
                MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_NUM_PORTS_OFFSET);
 
                size = dev->caps.function_caps; /* set PF behaviours */
 
        spin_lock_bh(&priv->tx.tx_lock);
        len = scnprintf(buf, sizeof(buf),
                        "TX slot bitmap : %*pb\n"
-                       "Used slots     : %d\n",
+                       "Used slots     : %ld\n",
                        MAX_TX_BUF_NUM, priv->tx.tx_slot,
                        bitmap_weight(priv->tx.tx_slot, MAX_TX_BUF_NUM));
        spin_unlock_bh(&priv->tx.tx_lock);
 
        ADD(buf, *len, bufsize, "jar: [%*pb]\n",
            ar->fw.mem_blocks, ar->mem_bitmap);
 
-       ADD(buf, *len, bufsize, "cookies: used:%3d / total:%3d, allocs:%d\n",
+       ADD(buf, *len, bufsize, "cookies: used:%3ld / total:%3d, allocs:%d\n",
            bitmap_weight(ar->mem_bitmap, ar->fw.mem_blocks),
            ar->fw.mem_blocks, atomic_read(&ar->mem_allocs));
 
 
                         const unsigned long *bitmap2, unsigned int nbits);
 bool __bitmap_subset(const unsigned long *bitmap1,
                     const unsigned long *bitmap2, unsigned int nbits);
-int __bitmap_weight(const unsigned long *bitmap, unsigned int nbits);
+unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int nbits);
 void __bitmap_set(unsigned long *map, unsigned int start, int len);
 void __bitmap_clear(unsigned long *map, unsigned int start, int len);
 
        return find_first_zero_bit(src, nbits) == nbits;
 }
 
-static __always_inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
+static __always_inline
+unsigned long bitmap_weight(const unsigned long *src, unsigned int nbits)
 {
        if (small_const_nbits(nbits))
                return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
 
 }
 EXPORT_SYMBOL(__bitmap_subset);
 
-int __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
+unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
 {
-       unsigned int k, lim = bits/BITS_PER_LONG;
-       int w = 0;
+       unsigned long k, w = 0, lim = bits/BITS_PER_LONG;
 
        for (k = 0; k < lim; k++)
                w += hweight_long(bitmap[k]);
 
 #define DECLARE_BITMAP(name,bits) \
        unsigned long name[BITS_TO_LONGS(bits)]
 
-int __bitmap_weight(const unsigned long *bitmap, int bits);
+unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits);
 void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
                 const unsigned long *bitmap2, int bits);
 bool __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
        return find_first_zero_bit(src, nbits) == nbits;
 }
 
-static inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
+static inline unsigned long bitmap_weight(const unsigned long *src, unsigned int nbits)
 {
        if (small_const_nbits(nbits))
                return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
 
  */
 #include <linux/bitmap.h>
 
-int __bitmap_weight(const unsigned long *bitmap, int bits)
+unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
 {
-       int k, w = 0, lim = bits/BITS_PER_LONG;
+       unsigned long k, w = 0, lim = bits/BITS_PER_LONG;
 
        for (k = 0; k < lim; k++)
                w += hweight_long(bitmap[k]);