]> git.pld-linux.org Git - packages/kernel.git/blob - 2.6.0-t8-__div64_32-lkml.patch
+CONFIG_IP_NF_MATCH_LAYER7=m
[packages/kernel.git] / 2.6.0-t8-__div64_32-lkml.patch
1 diff -u -p -r1.1 div64.c
2 --- linux.org/lib/div64.c       29 Jul 2003 17:02:19 -0000      1.1
3 +++ linux/lib/div64.c   24 Oct 2003 04:10:59 -0000
4 @@ -25,25 +25,27 @@
5  
6  uint32_t __div64_32(uint64_t *n, uint32_t base)
7  {
8 -       uint32_t low, low2, high, rem;
9 +       uint64_t rem = *n;
10 +       uint64_t b = base;
11 +       uint64_t res = 0, d = 1;
12  
13 -       low   = *n   & 0xffffffff;
14 -       high  = *n  >> 32;
15 -       rem   = high % (uint32_t)base;
16 -       high  = high / (uint32_t)base;
17 -       low2  = low >> 16;
18 -       low2 += rem << 16;
19 -       rem   = low2 % (uint32_t)base;
20 -       low2  = low2 / (uint32_t)base;
21 -       low   = low  & 0xffff;
22 -       low  += rem << 16;
23 -       rem   = low  % (uint32_t)base;
24 -       low   = low  / (uint32_t)base;
25 +       if (b > 0) {
26 +               while (b < rem) {
27 +                       b <<= 1;
28 +                       d <<= 1;
29 +               }
30 +       }
31  
32 -       *n = low +
33 -               ((uint64_t)low2 << 16) +
34 -               ((uint64_t)high << 32);
35 +       do {
36 +               if (rem >= b) {
37 +                       rem -= b;
38 +                       res += d;
39 +               }
40 +               b >>= 1;
41 +               d >>= 1;
42 +       } while (d);
43  
44 +       *n = res;
45         return rem;
46  }
47  
This page took 0.025582 seconds and 3 git commands to generate.