Hi Arnd, we already have a patch for this: [PATCH 1/1] staging: pi433: fix problem with division in rf69_set_deviation from 20.07.2017 Maybe I did something wrong, but my first solution was exactly like your proposal. As far as I remeber, I wasn't able to compile it that way. Therefore I made a little bit more complicated fix. If I did something wrong and yours is fine, we should go for yours, because it is a shorter solution. Thanks, Marcus > Arnd Bergmann <arnd@xxxxxxxx> hat am 28. Juli 2017 um 15:23 geschrieben: > > > I ran into this link error on an ARM OABI build: > > drivers/staging/pi433/rf69.o: In function `rf69_set_frequency': > rf69.c:(.text+0xc9c): undefined reference to `__udivdi3' > > No idea why I didn't see it with the default EABI configurations, > but the right solution here seems to be to use div_u64() > to get the external division implementation. > > Fixes: 874bcba65f9a ("staging: pi433: New driver") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > drivers/staging/pi433/rf69.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/pi433/rf69.c b/drivers/staging/pi433/rf69.c > index e391ce777bc7..e5267b5638c0 100644 > --- a/drivers/staging/pi433/rf69.c > +++ b/drivers/staging/pi433/rf69.c > @@ -238,7 +238,7 @@ int rf69_set_frequency(struct spi_device *spi, u32 > frequency) > do_div(f_step, 524288); // 524288 = 2^19 > > // check input value > - f_max = f_step * 8388608 / factor; > + f_max = div_u64(f_step * 8388608, factor); > if (frequency > f_max) > { > dev_dbg(&spi->dev, "setFrequency: illegal input param"); > -- > 2.9.0 > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel