Fixed on the tree.  Also the diff is attached.

On Mon, 14 Sep 2015 22:43:17 +0200
Henrik Friedrichsen <hen...@diff.cc> wrote:
>>Synopsis:     Panic on setroot() with latest snapshot + UEFI
>>Category:     amd64
>>Environment:
>       System      : OpenBSD 5.8
>       Details     : OpenBSD 5.8-current (GENERIC.MP) #1367: Sat Sep 12 
> 14:59:55 MDT 2015
>                        
> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
>>Description:
> Machine is a Thinkpad X220i.
> 
> I just updated to the snapshot from today (14th September), previously
> I was running a snapshot from the 12th of September, which did not
> exhibit this behaviour.
> 
> I use the new UEFI bootloader. The drivers initialize, but the kernel
> panics when trying to find/set the root device.
> The only thing I have changed was upgrading to todays snapshot.
> 
> DDB trace: http://i.imgur.com/IZfPf5y.jpg
> 
> With the old/backed up kernel I can boot the system just fine.
> 
> Something else: When I boot using UEFI, inteldrm does not attach
> and I can not use Xorg/KMS with the Intel driver. Is this because
> UEFI is still new or is this meant to work?

You can use wsfb for X, but it still doesn't work with KMS.

See
  http://blog.jasper.la/openbsd-uefi-bootloader-howto/
to use wsfb for X.

Thank you for your report.

>>How-To-Repeat:
> Boot with UEFI using the latest snapshot.
>>Fix:
>       <how to correct or work around the problem, if known (multiple lines)>
> 
(snip)

Index: sys/kern/subr_disk.c
===================================================================
RCS file: /cvs/src/sys/kern/subr_disk.c,v
retrieving revision 1.216
diff -u -p -r1.216 subr_disk.c
--- sys/kern/subr_disk.c        13 Sep 2015 14:38:17 -0000      1.216
+++ sys/kern/subr_disk.c        15 Sep 2015 01:12:00 -0000
@@ -384,7 +384,7 @@ readdoslabel(struct buf *bp, void (*stra
                        error = spoofgptlabel(bp, strat, gptlp);
                        if (error == 0) {
                                dospartoff = DL_GETBSTART(gptlp);
-                               dospartoff = DL_GETBEND(gptlp);
+                               dospartend = DL_GETBEND(gptlp);
                                if (partoffp) {
                                        if (dospartoff == 0)
                                                return (ENXIO);

Reply via email to