fix issue where gcc 4.2 compiled kernel modules were breaking on linux
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
with fix from Hans-Werner Pulsen
====================
with fix from Hans-Werner Pulsen
(cherry picked from commit
7832148ae0e8c9f17a2ac2eb879c7b2fdf69403e)
{
/* Hash a string to a number between 0 and NHASHENT. */
register unsigned char tc;
- register int hval;
+ unsigned int hval;
register int tval;
hval = 0;
while ((tc = (*string++))) {
tval = hval & (NHASHENT - 1);
if (tval == 0)
return tval;
- else if (hval < 0)
+ else if (hval >= 1<<31)
tval = NHASHENT - tval;
return tval;
}