diff options
| author | Javi Merino <[email protected]> | 2015-04-16 12:43:45 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2015-04-17 09:03:55 -0400 |
| commit | f766093ecb647f5a87bfa456715abbbccee547ce (patch) | |
| tree | 818e47743fc5216fe7647dca2d1d6ca4de78c824 /include/linux | |
| parent | 675cf53c1deaffadc7b6a0b4afe6cdafec86bedb (diff) | |
kernel.h: implement DIV_ROUND_CLOSEST_ULL
We have grown a number of different implementations of
DIV_ROUND_CLOSEST_ULL throughout the kernel. Move the i915 one to
kernel.h so that it can be reused.
Signed-off-by: Javi Merino <[email protected]>
Reviewed-by: Jeff Epler <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Guenter Roeck <[email protected]>
Acked-by: Daniel Vetter <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>
Cc: Alex Elder <[email protected]>
Cc: Antti Palosaari <[email protected]>
Cc: Javi Merino <[email protected]>
Cc: Mauro Carvalho Chehab <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Mike Turquette <[email protected]>
Cc: Stephen Boyd <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/kernel.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index d6d630d31ef3..3a5b48e52a9e 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -103,6 +103,18 @@ (((__x) - ((__d) / 2)) / (__d)); \ } \ ) +/* + * Same as above but for u64 dividends. divisor must be a 32-bit + * number. + */ +#define DIV_ROUND_CLOSEST_ULL(x, divisor)( \ +{ \ + typeof(divisor) __d = divisor; \ + unsigned long long _tmp = (x) + (__d) / 2; \ + do_div(_tmp, __d); \ + _tmp; \ +} \ +) /* * Multiplies an integer by a fraction, while avoiding unnecessary |