? dtrace-lockstat.patch ? lockstat ? o ? x ? y ? ic/x ? mii/e1000phy.c ? mii/e1000phyreg.h ? pci/if_sk.c.new ? pci/o ? pci/x ? usb/o Index: bio.c =================================================================== RCS file: /cvsroot/src/sys/dev/bio.c,v retrieving revision 1.11 diff -u -u -r1.11 bio.c --- bio.c 25 Jul 2014 08:10:35 -0000 1.11 +++ bio.c 12 Mar 2015 15:28:32 -0000 @@ -45,6 +45,7 @@ #include #include +#include struct bio_mapping { LIST_ENTRY(bio_mapping) bm_link; @@ -302,3 +303,64 @@ return bm->bm_ioctl(bm->bm_dev, cmd, addr); } + +void +bio_disk_to_envsys(envsys_data_t *edata, const struct bioc_disk *bd) +{ + switch (bd->bd_status) { + case BIOC_SDONLINE: + edata->value_cur = ENVSYS_DRIVE_ONLINE; + edata->state = ENVSYS_SVALID; + break; + case BIOC_SDOFFLINE: + edata->value_cur = ENVSYS_DRIVE_OFFLINE; + edata->state = ENVSYS_SCRITICAL; + break; + default: + edata->value_cur = ENVSYS_DRIVE_FAIL; + edata->state = ENVSYS_SCRITICAL; + break; + } +} + +void +bio_vol_to_envsys(envsys_data_t *edata, const struct bioc_vol *bv) +{ + switch (bv->bv_status) { + case BIOC_SVOFFLINE: + edata->value_cur = ENVSYS_DRIVE_OFFLINE; + edata->state = ENVSYS_SCRITICAL; + break; + case BIOC_SVDEGRADED: + edata->value_cur = ENVSYS_DRIVE_PFAIL; + edata->state = ENVSYS_SCRITICAL; + break; + case BIOC_SVBUILDING: + edata->value_cur = ENVSYS_DRIVE_BUILD; + edata->state = ENVSYS_SVALID; + break; + case BIOC_SVMIGRATING: + edata->value_cur = ENVSYS_DRIVE_MIGRATING; + edata->state = ENVSYS_SVALID; + break; + case BIOC_SVCHECKING: + edata->value_cur = ENVSYS_DRIVE_CHECK; + edata->state = ENVSYS_SVALID; + break; + case BIOC_SVREBUILD: + edata->value_cur = ENVSYS_DRIVE_REBUILD; + edata->state = ENVSYS_SCRITICAL; + break; + case BIOC_SVSCRUB: + case BIOC_SVONLINE: + edata->value_cur = ENVSYS_DRIVE_ONLINE; + edata->state = ENVSYS_SVALID; + break; + case BIOC_SVINVALID: + /* FALLTHROUGH */ + default: + edata->value_cur = ENVSYS_DRIVE_EMPTY; /* unknown state */ + edata->state = ENVSYS_SINVALID; + break; + } +} Index: biovar.h =================================================================== RCS file: /cvsroot/src/sys/dev/biovar.h,v retrieving revision 1.8 diff -u -u -r1.8 biovar.h --- biovar.h 7 May 2009 12:15:33 -0000 1.8 +++ biovar.h 12 Mar 2015 15:28:32 -0000 @@ -256,4 +256,8 @@ int bc_volid; /* volume id to be created/removed */ }; +struct envsys_data; +void bio_disk_to_envsys(struct envsys_data *, const struct bioc_disk *); +void bio_vol_to_envsys(struct envsys_data *, const struct bioc_vol *) ; + #endif /* ! _DEV_BIOVAR_H_ */ Index: ic/cac.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/cac.c,v retrieving revision 1.54 diff -u -u -r1.54 cac.c --- ic/cac.c 27 Oct 2012 17:18:19 -0000 1.54 +++ ic/cac.c 12 Mar 2015 15:28:32 -0000 @@ -723,40 +723,10 @@ memset(&bv, 0, sizeof(bv)); bv.bv_volid = edata->sensor; s = splbio(); - if (cac_ioctl_vol(sc, &bv)) { - splx(s); - return; - } + if (cac_ioctl_vol(sc, &bv)) + bv.bv_status = BIOC_SVINVALID; splx(s); - switch(bv.bv_status) { - case BIOC_SVOFFLINE: - edata->value_cur = ENVSYS_DRIVE_FAIL; - edata->state = ENVSYS_SCRITICAL; - break; - - case BIOC_SVDEGRADED: - edata->value_cur = ENVSYS_DRIVE_PFAIL; - edata->state = ENVSYS_SCRITICAL; - break; - - case BIOC_SVSCRUB: - case BIOC_SVONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - - case BIOC_SVREBUILD: - case BIOC_SVBUILDING: - edata->value_cur = ENVSYS_DRIVE_REBUILD; - edata->state = ENVSYS_SVALID; - break; - - case BIOC_SVINVALID: - /* FALLTRHOUGH */ - default: - edata->value_cur = 0; /* unknown */ - edata->state = ENVSYS_SINVALID; - } + bio_vol_to_envsys(edata, &bv); } #endif /* NBIO > 0 */ Index: ic/ciss.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/ciss.c,v retrieving revision 1.32 diff -u -u -r1.32 ciss.c --- ic/ciss.c 17 Oct 2013 21:24:24 -0000 1.32 +++ ic/ciss.c 12 Mar 2015 15:28:32 -0000 @@ -1541,38 +1541,9 @@ memset(&bv, 0, sizeof(bv)); bv.bv_volid = edata->sensor; - if (ciss_ioctl_vol(sc, &bv)) { - return; - } + if (ciss_ioctl_vol(sc, &bv)) + bv.bv_status = BIOC_SVINVALID; - switch(bv.bv_status) { - case BIOC_SVOFFLINE: - edata->value_cur = ENVSYS_DRIVE_FAIL; - edata->state = ENVSYS_SCRITICAL; - break; - - case BIOC_SVDEGRADED: - edata->value_cur = ENVSYS_DRIVE_PFAIL; - edata->state = ENVSYS_SCRITICAL; - break; - - case BIOC_SVSCRUB: - case BIOC_SVONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - - case BIOC_SVREBUILD: - case BIOC_SVBUILDING: - edata->value_cur = ENVSYS_DRIVE_REBUILD; - edata->state = ENVSYS_SVALID; - break; - - case BIOC_SVINVALID: - /* FALLTRHOUGH */ - default: - edata->value_cur = 0; /* unknown */ - edata->state = ENVSYS_SINVALID; - } + bio_vol_to_envsys(edata, &bv); } #endif /* NBIO > 0 */ Index: ic/mfi.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/mfi.c,v retrieving revision 1.55 diff -u -u -r1.55 mfi.c --- ic/mfi.c 21 Aug 2014 15:43:35 -0000 1.55 +++ ic/mfi.c 12 Mar 2015 15:28:32 -0000 @@ -2638,31 +2638,9 @@ splx(s); KERNEL_UNLOCK_ONE(curlwp); if (error) - return; - - switch(bv.bv_status) { - case BIOC_SVOFFLINE: - edata->value_cur = ENVSYS_DRIVE_FAIL; - edata->state = ENVSYS_SCRITICAL; - break; - - case BIOC_SVDEGRADED: - edata->value_cur = ENVSYS_DRIVE_PFAIL; - edata->state = ENVSYS_SCRITICAL; - break; + bv.bv_status = BIOC_SVINVALID; - case BIOC_SVSCRUB: - case BIOC_SVONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - - case BIOC_SVINVALID: - /* FALLTRHOUGH */ - default: - edata->value_cur = 0; /* unknown */ - edata->state = ENVSYS_SINVALID; - } + bio_vol_to_envsys(edata, &bv); } #endif /* NBIO > 0 */ Index: pci/arcmsr.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/arcmsr.c,v retrieving revision 1.31 diff -u -u -r1.31 arcmsr.c --- pci/arcmsr.c 29 Mar 2014 19:28:24 -0000 1.31 +++ pci/arcmsr.c 12 Mar 2015 15:28:33 -0000 @@ -1841,78 +1841,23 @@ bv.bv_volid = arcdata->arc_volid; if (arc_bio_vol(sc, &bv)) { - edata->value_cur = ENVSYS_DRIVE_EMPTY; - edata->state = ENVSYS_SINVALID; + bv.bv_status = BIOC_SVINVALID; + bio_vol_to_envsys(edata, &bv); return; } - /* Current sensor is handling a disk volume member */ if (arcdata->arc_diskid) { + /* Current sensor is handling a disk volume member */ memset(&bd, 0, sizeof(bd)); bd.bd_volid = arcdata->arc_volid; bd.bd_diskid = arcdata->arc_diskid - 10; - if (arc_bio_disk_volume(sc, &bd)) { - edata->value_cur = ENVSYS_DRIVE_OFFLINE; - edata->state = ENVSYS_SCRITICAL; - return; - } - - switch (bd.bd_status) { - case BIOC_SDONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SDOFFLINE: - edata->value_cur = ENVSYS_DRIVE_OFFLINE; - edata->state = ENVSYS_SCRITICAL; - break; - default: - edata->value_cur = ENVSYS_DRIVE_FAIL; - edata->state = ENVSYS_SCRITICAL; - break; - } - - return; - } - - /* Current sensor is handling a volume */ - switch (bv.bv_status) { - case BIOC_SVOFFLINE: - edata->value_cur = ENVSYS_DRIVE_OFFLINE; - edata->state = ENVSYS_SCRITICAL; - break; - case BIOC_SVDEGRADED: - edata->value_cur = ENVSYS_DRIVE_PFAIL; - edata->state = ENVSYS_SCRITICAL; - break; - case BIOC_SVBUILDING: - edata->value_cur = ENVSYS_DRIVE_BUILD; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVMIGRATING: - edata->value_cur = ENVSYS_DRIVE_MIGRATING; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVCHECKING: - edata->value_cur = ENVSYS_DRIVE_CHECK; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVREBUILD: - edata->value_cur = ENVSYS_DRIVE_REBUILD; - edata->state = ENVSYS_SCRITICAL; - break; - case BIOC_SVSCRUB: - case BIOC_SVONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVINVALID: - /* FALLTHROUGH */ - default: - edata->value_cur = ENVSYS_DRIVE_EMPTY; /* unknown state */ - edata->state = ENVSYS_SINVALID; - break; + if (arc_bio_disk_volume(sc, &bd)) + bd.bd_status = BIOC_SDOFFLINE; + bio_disk_to_envsys(edata, &bd); + } else { + /* Current sensor is handling a volume */ + bio_vol_to_envsys(edata, &bv); } } #endif /* NBIO > 0 */ Index: pci/mpii.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/mpii.c,v retrieving revision 1.5 diff -u -u -r1.5 mpii.c --- pci/mpii.c 29 Mar 2014 19:28:25 -0000 1.5 +++ pci/mpii.c 12 Mar 2015 15:28:33 -0000 @@ -5571,29 +5571,7 @@ splx(s); KERNEL_UNLOCK_ONE(curlwp); if (error) - return; - switch(bv.bv_status) { - case BIOC_SVOFFLINE: - edata->value_cur = ENVSYS_DRIVE_FAIL; - edata->state = ENVSYS_SCRITICAL; - break; - case BIOC_SVDEGRADED: - edata->value_cur = ENVSYS_DRIVE_PFAIL; - edata->state = ENVSYS_SCRITICAL; - break; - case BIOC_SVREBUILD: - edata->value_cur = ENVSYS_DRIVE_REBUILD; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVONLINE: - edata->value_cur = ENVSYS_DRIVE_ONLINE; - edata->state = ENVSYS_SVALID; - break; - case BIOC_SVINVALID: - /* FALLTHROUGH */ - default: - edata->value_cur = 0; /* unknown */ - edata->state = ENVSYS_SINVALID; - } + bv.bv_status = BIOC_SVINVALID; + bio_vol_to_envsys(edata, &bv); } #endif /* NBIO > 0 */