From 5bffd69d1d5afdea36a220a62976c0cf16cd4744 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Fri, 20 Jun 2003 00:05:44 +0000 Subject: [PATCH] Fix bug in block device driver init of DPBs git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@622 6ac86273-5f31-0410-b378-82cca8765d1b --- kernel/config.c | 4 ++++ kernel/main.c | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/config.c b/kernel/config.c index bf98a11..c1cf321 100644 --- a/kernel/config.c +++ b/kernel/config.c @@ -361,6 +361,8 @@ void PreConfig2(void) /* Also, run config.sys to load drivers. */ void PostConfig(void) { + struct dpb FAR *old_dpbp; + /* We could just have loaded FDXMS or HIMEM */ if (HMAState == HMA_REQ && MoveKernelToHMA()) HMAState = HMA_DONE; @@ -401,8 +403,10 @@ void PostConfig(void) LoL->CDSp = KernelAlloc(sizeof(struct cds) * LoL->lastdrive, 'L', Config.cfgLastdriveHigh); + old_dpbp = LoL->DPBp; LoL->DPBp = KernelAlloc(blk_dev.dh_name[0] * sizeof(struct dpb), 'E', Config.cfgDosDataUmb); + fmemcpy(LoL->DPBp, old_dpbp, blk_dev.dh_name[0] * sizeof(struct dpb)); #ifdef DEBUG printf("Final: \n f_node 0x%x\n", LoL->f_nodes); diff --git a/kernel/main.c b/kernel/main.c index 157d9d8..1cf3ff4 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -275,8 +275,6 @@ STATIC void init_kernel(void) /* and do final buffer allocation. */ PostConfig(); - LoL->nblkdev = 0; - update_dcb(&blk_dev); /* Init the file system one more time */ FsConfig();