From d4433dec2e76bf76e6cc0dc9863025214a090a25 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 7 May 2003 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 2003-05-07 --- port/devsd.c | 8 ++++---- port/page.c | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/port/devsd.c b/port/devsd.c index 3e67e7f7f09715d37085e900f60ce9f81ff33fea..650ec9bf2c115fa087e7bf415d2adc1089237b78 100644 --- a/port/devsd.c +++ b/port/devsd.c @@ -276,10 +276,6 @@ sdgetunit(SDev* sdev, int subno) } sdev->unitflg[subno] = 1; - if(sdev->enabled == 0 && sdev->ifc->enable) - sdev->ifc->enable(sdev); - sdev->enabled = 1; - snprint(buf, sizeof(buf), "%s%d", sdev->name, subno); kstrdup(&unit->name, buf); kstrdup(&unit->user, eve); @@ -287,6 +283,10 @@ sdgetunit(SDev* sdev, int subno) unit->subno = subno; unit->dev = sdev; + if(sdev->enabled == 0 && sdev->ifc->enable) + sdev->ifc->enable(sdev); + sdev->enabled = 1; + /* * No need to lock anything here as this is only * called before the unit is made available in the diff --git a/port/page.c b/port/page.c index 2a91c1864963543d94bd16121c98330e9f75d7cc..1a0bdcfc3f2d9edbd0fab3343bfff522152e6f4c 100644 --- a/port/page.c +++ b/port/page.c @@ -176,6 +176,7 @@ newpage(int clear, Segment **s, ulong va) } pageunchain(p); + lock(p); if(p->ref != 0) panic("newpage");