Support the installation of character devices via an lkm.
Closes PR# 1716 Submitted by: jpt@magic.net
This commit is contained in:
+10
-1
@@ -741,6 +741,15 @@ _lkm_dev(lkmtp, cmd)
|
||||
break;
|
||||
|
||||
case LM_DT_CHAR:
|
||||
if ((i = args->lkm_offset) == -1)
|
||||
descrip = (dev_t) -1;
|
||||
else
|
||||
descrip = makedev(args->lkm_offset,0);
|
||||
if ( err = cdevsw_add(&descrip, args->lkm_dev.cdev,
|
||||
&(args->lkm_olddev.cdev))) {
|
||||
break;
|
||||
}
|
||||
args->lkm_offset = major(descrip) ;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -752,11 +761,11 @@ _lkm_dev(lkmtp, cmd)
|
||||
case LKM_E_UNLOAD:
|
||||
/* current slot... */
|
||||
i = args->lkm_offset;
|
||||
descrip = makedev(i,0);
|
||||
|
||||
switch(args->lkm_devtype) {
|
||||
case LM_DT_BLOCK:
|
||||
/* replace current slot contents with old contents */
|
||||
descrip = makedev(i,0);
|
||||
bdevsw_add(&descrip, args->lkm_olddev.bdev,NULL);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user