Thread (33 messages) 33 messages, 5 authors, 2016-05-03

Re: [PATCH v5 09/21] IB/hns: Add hca support

From: oulijun <hidden>
Date: 2016-04-27 03:34:54
Also in: linux-rdma, lkml

On 2016/4/26 22:25, Jiri Pirko wrote:
Tue, Apr 26, 2016 at 04:18:21PM CEST, leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org wrote:
quoted
On Tue, Apr 26, 2016 at 02:34:44PM +0800, oulijun wrote:
quoted
On 2016/4/24 15:54, Leon Romanovsky wrote:
<snip>
quoted
quoted
quoted
quoted
+int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, u32 *obj)
+{
+	int ret = 0;
+
+	spin_lock(&bitmap->lock);
+	*obj = find_next_zero_bit(bitmap->table, bitmap->max, bitmap->last);
+	if (*obj >= bitmap->max) {
+		bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top)
+			       & bitmap->mask;
+		*obj = find_first_zero_bit(bitmap->table, bitmap->max);
find_first_zero_bit function returns "unsigned long" which may or may
not be equal to u32 on some architectures.
Hi Leon,
    I appreciate your keen eye. this code is meant for ARM64bit therefore should run corretly for 64-bit AARCH64.
The driver should run correctly on any arch.
 Hi Jiri Pirko,
    Our driver run in ARM64 platform by depending on Kconfig. It will be configure in Kconfig file.

Thanks
Lijun Ou
quoted
quoted
I will consider changing it as part of good partice and better portability "
I will give a primary plan to modified it.
for example:
    *obj = (u32)find_next_zero_bit(bitmap->table, bitmap->max, bitmap->last);
Beause the max size of bitmap->table is u32 in current version.

int hns_roce_bitmap_init(struct hns_roce_bitmap *bitmap, u32 num, u32 mask,
			 u32 reserved_bot, u32 reserved_top)
{
	u32 i;

	if (num != roundup_pow_of_two(num))
		return -EINVAL;

	bitmap->last = 0;
	bitmap->top = 0;
	bitmap->max = num - reserved_top;
	bitmap->mask = mask;
	bitmap->reserved_top = reserved_top;
	spin_lock_init(&bitmap->lock);
	bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
				GFP_KERNEL);

Is this plan ok?
No,
You are submitting new driver, please do it properly (without casting)
from the beginning.
quoted
Thanks
Lijun Ou

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help