On 05/15/2012 10:57 AM, Nitin Gupta wrote: <SNIP> >>> >>>> >>>> >>>>>> Its true that making it a real struct would prevent accidental casts >>>>>> to void * but due to the above problem, I think we have to stick >>>>>> with unsigned long. >>> >>> So the problem you are seeing is that you don't want 'struct zs_handle' >>> be present in the drivers/staging/zsmalloc/zsmalloc.h header file? >>> It looks like the proper place. >> >> >> No. What I want is to remove coupling zsallocator's handle with zram/zcache. >> They shouldn't know internal of handle and assume it's a pointer. >> >> If Nitin confirm zs_handle's format can never change in future, I prefer "unsigned long" Nitin suggested than (void *). >> It can prevent confusion that normal allocator's return value is pointer for address so the problem is easy. >> But I am not sure he can make sure it. >> > > zs_handle will always be an unsigned long so its better to just use > the same as return type. Okay. it makes problem very easy. > > Another alternative is to return 'struct zs_handle *' which can be > used as a 'void *' by zcache and as unsigned long by zsmalloc. > However, I see no good reason for preferring this over simple unsigned > long as the return type. Agreed. -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>