aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/atm/ambassador.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2006-11-13 19:12:08 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:22:25 -0500
commit5f3f24faf322e54752d1df00cdb768a013de5d1f (patch)
tree81a8bf76d9165d3f0798f2cbd6cb967d35b54d3c /drivers/atm/ambassador.c
parent2ee92d46c6cabedd50edf6f273fa8cf84f707618 (diff)
[ATM] ambassador,firestream: "-1 >>" is implementation defined
6.5.7(5): The result of E1 >> E2 is E1 right-shifted E2 bit positions. ... If E1 has a signed type and a negative value, the resulting value is implementation defined. So, cast -1 to unsigned type to make result well-defined. [ Modified to use ~0U based upon recommendation from Al Viro. -DaveM ] Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/atm/ambassador.c')
-rw-r--r--drivers/atm/ambassador.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
index 9fffa7af6db1..afa7d750a593 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -972,7 +972,7 @@ static int make_rate (unsigned int rate, rounding r,
972 } 972 }
973 case round_up: { 973 case round_up: {
974 // check all bits that we are discarding 974 // check all bits that we are discarding
975 if (man & (-1>>9)) { 975 if (man & (~0U>>9)) {
976 man = (man>>(32-9)) + 1; 976 man = (man>>(32-9)) + 1;
977 if (man == (1<<9)) { 977 if (man == (1<<9)) {
978 // no need to check for round up outside of range 978 // no need to check for round up outside of range