]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
* Apply patch from Chaskiel Grundman to fix kernel panics when loading debian/1.4.2.fc4-3
authorRuss Allbery <rra@debian.org>
Thu, 5 Oct 2006 20:03:15 +0000 (20:03 +0000)
committerRuss Allbery <rra@debian.org>
Thu, 5 Oct 2006 20:03:15 +0000 (20:03 +0000)
  the kernel module into AMD64 2.6.18 kernels.  (Closes: #390653)

debian/changelog
src/afs/LINUX/osi_probe.c

index 90eaa1acfdcd0513f5c580c7dda50bb321a75af7..e31bb8820df83eaef19636bbc0976f4b88be7bc5 100644 (file)
@@ -1,11 +1,13 @@
 openafs (1.4.2~fc4-3) unstable; urgency=low
 
+  * Apply patch from Chaskiel Grundman to fix kernel panics when loading
+    the kernel module into AMD64 2.6.18 kernels.  (Closes: #390653)
   * Apply upstream patch to fix klog segfaults.  (Closes: #390940)
   * The UTS_RELEASE string is no longer found in linux/version.h in
     2.6.18, so fall back on looking in config/kernel.release.  Thanks to
     Marcus Watts for the patch.
 
- -- Russ Allbery <rra@stanford.edu>  Wed,  4 Oct 2006 11:52:20 -0700
+ -- Russ Allbery <rra@debian.org>  Thu,  5 Oct 2006 13:02:50 -0700
 
 openafs (1.4.2~fc4-2) unstable; urgency=low
 
index 20acb39e103bf45935fbc212339bf604810ce413..48c7c93efc7d238bd290b2891deb392158d5c1a8 100644 (file)
@@ -1009,6 +1009,11 @@ static void *try(probectl *P, tryctl *T, PROBETYPE *aptr,
 #else
        ptr = aptr;
 #endif
+       if ((unsigned long)ptr < init_mm.start_code ||
+               (unsigned long)ptr > init_mm.end_data) {
+            continue;
+       }
+
        ret = check_table(P, ptr);
        if (ret >= 0) {
            /* return value is number of entries to skip */
@@ -1113,6 +1118,10 @@ static void *try_harder(probectl *P, PROBETYPE *ptr, unsigned long datalen)
        printk("<7>osi_probe: %s                      try_harder\n", P->symbol);
 #endif
     for (offset = 0; offset < datalen; offset++, ptr++) {
+       if ((unsigned long)ptr < init_mm.start_code ||
+               (unsigned long)ptr > init_mm.end_data) {
+            continue;
+       }
        ret = check_table(P, ptr);
         if (ret >= 0) {
             /* return value is number of entries to skip */