From: Herbert Poetzl (herbert_at_13thfloor.at)
Date: Sun 22 Dec 2002 - 01:46:35 GMT
On Sat, Dec 21, 2002 at 07:49:26PM -0500, tedsuo wrote:
> > > Hi, we got strange bug with our server during the period after the
> > > reboot to kernel 2.4.20 with the CTX16 patch for vserver. The
> > > server has crash many times (5 in a day). We have found that AMD
> > > machine running VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev
> > > 03) were not compatible with kernel 2.4.20. It seem that there is a
> > > bug between the kernel compatibility with the AMD hardware. Running
> > > lspci can show you the version. I was wondering if it is possible to
> > > get a ctx16 patch for linux 2.4.19 kernel. We do not confirm that
> > > kernel 2.4.20 is 100% unstable with these machine but we will do
> > > troubleshooting and find out if this kernel 2.4.20 is really unstable
> > > with this hardware.
> >
> > please try to patch the acpi in for athlon based systems ...
> > (you can find a patchset at
> http://www.13thfloor.at/VServer/patches-2.4.20/)
> >
>
> any way to get ctx16 patch for linux 2.4.19 kernel??
here is your patch ... (everithing except whitespace)
apply it after the 2.4.19ctx15 patch ...
best,
Herbert
--- cut here ---
diff -NurbP --minimal linux-2.4.20-ctx15/Makefile linux-2.4.20-ctx16/Makefile
--- linux-2.4.20-ctx15/Makefile Mon Dec 16 19:54:35 2002
+++ linux-2.4.20-ctx16/Makefile Mon Dec 16 19:52:25 2002
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 19
-EXTRAVERSION =ctx-15
+EXTRAVERSION =ctx-16
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
diff -NurbP --minimal linux-2.4.20-ctx15/include/net/route.h linux-2.4.20-ctx16/include/net/route.h
--- linux-2.4.20-ctx15/include/net/route.h Mon Dec 16 19:54:36 2002
+++ linux-2.4.20-ctx16/include/net/route.h Mon Dec 16 19:52:25 2002
@@ -164,14 +164,20 @@
static inline int ip_route_connect(struct rtable **rp, u32 dst, u32 src, u32 tos, int oif)
{
int err;
- if (current->ip_info != NULL){
- __u32 ipv4root = current->ip_info->ipv4[0];
+ struct iproot_info *ip_info = current->ip_info;
+ if (ip_info != NULL){
+ __u32 ipv4root = ip_info->ipv4[0];
if (ipv4root != 0){
if (src == 0){
src = dst == 0x0100007f
? 0x0100007f: ipv4root;
- }else if (ipv4root != src){
- return -EPERM;
+ }else{
+ int n=ip_info->nbipv4;
+ int i;
+ for (i=0; i<n; i++){
+ if (ip_info->ipv4[i] == src) break;
+ }
+ if (i==n) return -EPERM;
}
if (dst == 0x0100007f && current->s_context != 0){
dst = ipv4root;