> -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] > Sent: Friday, January 16, 2015 5:02 PM > To: Doherty, Declan > Cc: dev at dpdk.org; De Lara Guarch, Pablo > Subject: Re: [dpdk-dev] [PATCH] eal / malloc : alignment parameter check > failing > due to changes in rte_is_power_of_2 > > 2015-01-16 15:10, Declan Doherty: > > In commit 2fc8d6d the behaviour of function rte_is_power_of_2 was > > changed to not return true for 0. memzone_reserve_aligned_thread_unsafe > > and rte_malloc_socket both make the assumption that for align = 0 > > !rte_is_power_of_2(align) will return false. This patch adds a check > > that align parameter is non-zero before doing the power of 2 check > > > > Signed-off-by: Declan Doherty <declan.doherty at intel.com> > [...] > > - if (!rte_is_power_of_2(align)) { > > + if (align ? !rte_is_power_of_2(align) : 0) { > [...] > > - if (size == 0 || !rte_is_power_of_2(align)) > > + if (size == 0 || align ? !rte_is_power_of_2(align) : 0) > > I don't understand why you write "align ? !rte_is_power_of_2(align) : 0" > instead of the more readable "align && !rte_is_power_of_2(align)" ? > > Pablo acked it so I guess there is something obvious I'm missing. > > -- > Thomas
No there's nothing you're missing, this is just the way I saw the logic, if align is none zero, then test the power of 2 condition otherwise return 0. I have no problem with your suggestion in you prefer that, at the end of the day the logic test works out equivalent.