Removing dead code
cover Removing dead code
Hi all!
As part of the VAMOS[0] research project at the University of
Erlangen we are looking at multiple integrity errors in linux' configuration system.
I've been running a check on the arch/ia64 sourcetree for
config Items not defined in Kconfig and found 2 such cases. Sourcecode blocks depending on these Items are not reachable from a vanilla kernel -- dead code. I've seen such dead blocks made on purpose e.g. while integrating new features into the kernel but generally they're just useless.
Each of the patches in this patchset removes on such dead
config Item, I'd be glad if you consider applying them. I've been doing deeper analysis of such issues before and can do so again but I'm not so sure they were fastly usefull.
Please keep me informed of this patch getting confirmed /
merged so we can keep track of it.
Regards
Christoph Egger
[0] http://vamos1.informatik.uni-erlangen.de/
Christoph Egger (2):
Removing dead CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK Removing dead CONFIG_IOMMU_DEBUG
arch/ia64/include/asm/native/inst.h | 96 ++++++++-------------------------- arch/ia64/kernel/pci-dma.c | 4 -- 2 files changed, 23 insertions(+), 77 deletions(-)
PATCH 1/2 Removing dead CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK
CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK doesn't exist in Kconfig, therefore removing all references for it from the source code.
--- arch/ia64/include/asm/native/inst.h | 96 ++++++++-------------------------- 1 files changed, 23 insertions(+), 73 deletions(-)
arch/ia64/include/asm/native/inst.h +23 -73
@@ -33,21 +33,6 @@#define paravirt_fsyscall_table ia64_native_fsyscall_table#define paravirt_fsys_bubble_down ia64_native_fsys_bubble_down -#ifdef CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK -# define PARAVIRT_POISON 0xdeadbeefbaadf00d -# define CLOBBER (clob) \ - ;; \ - movl clob = PARAVIRT_POISON; \ - ;; -# define CLOBBER_PRED (pred_clob) \ - ;; \ - cmp.eq pred_clob, p0 = r0, r0 \ - ;; -#else -# define CLOBBER (clob)/* nothing */ -# define CLOBBER_PRED (pred_clob)/* nothing */ -#endif -#define MOV_FROM_IFA (reg) \ mov reg = cr.ifa
@@ -70,106 +55,76 @@ mov reg = cr.iip#define MOV_FROM_IVR (reg, clob) \ - mov reg = cr.ivr \ - CLOBBER(clob) + mov reg = cr.ivr#define MOV_FROM_PSR (pred, reg, clob) \ -(pred) mov reg = psr \ - CLOBBER(clob) +(pred) mov reg = psr#define MOV_FROM_ITC (pred, pred_clob, reg, clob) \ -(pred) mov reg = ar.itc \ - CLOBBER(clob) \ - CLOBBER_PRED(pred_clob) +(pred) mov reg = ar.itc#define MOV_TO_IFA (reg, clob) \ - mov cr.ifa = reg \ - CLOBBER(clob) + mov cr.ifa = reg#define MOV_TO_ITIR (pred, reg, clob) \ -(pred) mov cr.itir = reg \ - CLOBBER(clob) +(pred) mov cr.itir = reg#define MOV_TO_IHA (pred, reg, clob) \ -(pred) mov cr.iha = reg \ - CLOBBER(clob) +(pred) mov cr.iha = reg#define MOV_TO_IPSR (pred, reg, clob) \ -(pred) mov cr.ipsr = reg \ - CLOBBER(clob) +(pred) mov cr.ipsr = reg#define MOV_TO_IFS (pred, reg, clob) \ -(pred) mov cr.ifs = reg \ - CLOBBER(clob) +(pred) mov cr.ifs = reg#define MOV_TO_IIP (reg, clob) \ - mov cr.iip = reg \ - CLOBBER(clob) + mov cr.iip = reg#define MOV_TO_KR (kr, reg, clob0, clob1) \ - mov IA64_KR(kr) = reg \ - CLOBBER(clob0) \ - CLOBBER(clob1) + mov IA64_KR(kr) = reg#define ITC_I (pred, reg, clob) \ -(pred) itc.i reg \ - CLOBBER(clob) +(pred) itc.i reg#define ITC_D (pred, reg, clob) \ -(pred) itc.d reg \ - CLOBBER(clob) +(pred) itc.d reg#define ITC_I_AND_D (pred_i, pred_d, reg, clob) \ (pred_i) itc.i reg; \ -(pred_d) itc.d reg \ - CLOBBER(clob) +(pred_d) itc.d reg#define THASH (pred, reg0, reg1, clob) \ -(pred) thash reg0 = reg1 \ - CLOBBER(clob) +(pred) thash reg0 = reg1#define SSM_PSR_IC_AND_DEFAULT_BITS_AND_SRLZ_I (clob0, clob1) \ - ssm psr.ic | PSR_DEFAULT_BITS \ - CLOBBER(clob0) \ - CLOBBER(clob1) \ + ssm psr.ic | PSR_DEFAULT_BITS \ ;; \ srlz.i/* guarantee that interruption collectin is on */ \ ;;#define SSM_PSR_IC_AND_SRLZ_D (clob0, clob1) \ - ssm psr.ic \ - CLOBBER(clob0) \ - CLOBBER(clob1) \ + ssm psr.ic \ ;; \ srlz.d#define RSM_PSR_IC (clob) \ - rsm psr.ic \ - CLOBBER(clob) + rsm psr.ic#define SSM_PSR_I (pred, pred_clob, clob) \ -(pred) ssm psr.i \ - CLOBBER(clob) \ - CLOBBER_PRED(pred_clob) +(pred) ssm psr.i#define RSM_PSR_I (pred, clob0, clob1) \ -(pred) rsm psr.i \ - CLOBBER(clob0) \ - CLOBBER(clob1) +(pred) rsm psr.i#define RSM_PSR_I_IC (clob0, clob1, clob2) \ - rsm psr.i | psr.ic \ - CLOBBER(clob0) \ - CLOBBER(clob1) \ - CLOBBER(clob2) + rsm psr.i | psr.ic#define RSM_PSR_DT \ rsm psr.dt#define RSM_PSR_BE_I (clob0, clob1) \ - rsm psr.be | psr.i \ - CLOBBER(clob0) \ - CLOBBER(clob1) + rsm psr.be | psr.i#define SSM_PSR_DT_AND_SRLZ_I \ ssm psr.dt \
@@ -177,15 +132,10 @@ srlz.i#define BSW_0 (clob0, clob1, clob2) \ - bsw.0 \ - CLOBBER(clob0) \ - CLOBBER(clob1) \ - CLOBBER(clob2) + bsw.0#define BSW_1 (clob0, clob1) \ - bsw.1 \ - CLOBBER(clob0) \ - CLOBBER(clob1) + bsw.1#define COVER \ cover
Signature · 1 line
1.7.0.4
PATCH 2/2 Removing dead CONFIG_IOMMU_DEBUG
In reply to Christoph EggerCONFIG_IOMMU_DEBUG doesn't exist in Kconfig, therefore removing all references for it from the source code.
--- arch/ia64/kernel/pci-dma.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-)
arch/ia64/kernel/pci-dma.c +0 -4
@@ -26,11 +26,7 @@ EXPORT_SYMBOL(bad_dma_address);static int iommu_sac_force__read_mostly ;int no_iommu__read_mostly ; -#ifdef CONFIG_IOMMU_DEBUG -int force_iommu__read_mostly =1 ; -#else int force_iommu__read_mostly ; -#endif int iommu_pass_through;
Signature · 1 line
1.7.0.4