Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Crash on -current on i386 (NOT amd64)



On Dec 5,  1:25pm, Paul Goyette wrote:
} On Sat, 5 Dec 2015, Paul Goyette wrote:
} 
} >>> With up-to-the-minute sources, I got the following crash while trying
} >>> to install i386-current in a qemu-VM.
} >>> 
} >>> ioctl DIOCGMEDIASIZE failed 19ge media |
} >>> uvm_fault(0xc2983d40, 0, 1) -> 0xe                         |
} >>> fatal page fault in supervisor mode                        |
} >>> trap type 6 code 0 eip c09115dd cs 8 eflags 296 cr2 28 ilevel 0 esp f0b
} >>> curlwp 0xc2a81aa0 pid 3907 lid 1 lowest kstack 0xdaadc2c0  |
} >>> kernel: supervisor trap page fault, code=0                 |
} >>> Stopped in pid 3907.1 (sysinst) at      c09115dd:       mull 28(%ecx),%eax
} >>> db{0}>
} >>> 
} >>> The same sources were used to create a amd64-current system, and I was 
} >>> able to install it successfully.
} >>> 
} >>> FWIW, my source tree is time-stamped at "2015-12-05 at 03:08:57 UTC"
} >
} > The original post(s) had the system versions wrong.  The correct info
} >
} > 	i386    FAILS
} > 	amd64   WORKS
} >
} > Sorry for confusion.
} 
} The failure occurs when trying to mount the (qemu-emulated) cd-rom
} containing the release files.

     Try this patch:

--- sys/miscfs/specfs/spec_vnops.c.orig 2015-12-04 22:26:43.000000000 -0800
+++ sys/miscfs/specfs/spec_vnops.c      2015-12-04 22:28:10.000000000 -0800
@@ -668,7 +668,8 @@
                printf("ioctl DIOCGMEDIASIZE failed %d\n", error);
 #endif
                error = (*ioctl)(vp->v_rdev, DIOCGPART, &pi, FREAD, curlwp);
-               off = (off_t)pi.disklab->d_secsize * pi.part->p_size;
+               if (error == 0)
+                       off = (off_t)pi.disklab->d_secsize * pi.part->p_size;
        }

        if (error == 0)

}-- End of excerpt from Paul Goyette


Home | Main Index | Thread Index | Old Index