Skip to contentSkip to conversation

CONFIG_SCSI_G_NCR5380_MEM dead?

DISCUSSION Christian Dietrich 3 participants 4 messages Jul 21, 2010 SCSI

lore
Share & tools
lore
#0 lore raw

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 drivers/scsi sourcetree for
config Items not defined in Kconfig and found such a case. 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.

I encountered, that the CONFIG_SCSI_G_NCR5380_MEM symbol in drivers/scsi/g_NCR5380.c isn't defined anywhere. So this codeblocks seems to be unreachable. But there is a define in g_NCR5380_mmio.c for SCSI_G_NCR5380_MEM with an include of g_NCR5380.c. So i think this is a typo-bug and it should be a CONFIG_ define. The code wasn't changed since linux is in git, so probably no one has used the mmio module, cause there can't be a difference to the normal pio module. If you think this ifdefs should be removed, i can send a patch.

Regards

Christian Dietrich

Signature · 3 lines
(λ x . x x) (λ x . x x) -- See how beatiful the lambda is
No documentation is better than bad documentation
-- Das Ausdrucken dieser Mail wird urheberrechtlich verfolgt.
#1 lore raw
Quoted 13 lines · Christian Dietrich

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 drivers/scsi sourcetree for
config Items not defined in Kconfig and found such a case. 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.

Quoted 8 lines

I encountered, that the CONFIG_SCSI_G_NCR5380_MEM symbol in drivers/scsi/g_NCR5380.c isn't defined anywhere. So this codeblocks seems to be unreachable. But there is a define in g_NCR5380_mmio.c for SCSI_G_NCR5380_MEM with an include of g_NCR5380.c. So i think this is a typo-bug and it should be a CONFIG_ define. The code wasn't changed since linux is in git, so probably no one has used the mmio module, cause there can't be a difference to the normal pio module. If you think this ifdefs should be removed, i can send a patch.

I fixed this some time ago but the patches are still not in mainline. You can find them in -mm tree: http://userweb.kernel.org/~akpm/mmotm/

Signature · 1 line
Ondrej Zary
#2 lore raw
Quoted 23 lines · Ondrej Zary
Quoted 13 lines · Christian Dietrich

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 drivers/scsi sourcetree for
config Items not defined in Kconfig and found such a case. 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.

Quoted 8 lines

I encountered, that the CONFIG_SCSI_G_NCR5380_MEM symbol in drivers/scsi/g_NCR5380.c isn't defined anywhere. So this codeblocks seems to be unreachable. But there is a define in g_NCR5380_mmio.c for SCSI_G_NCR5380_MEM with an include of g_NCR5380.c. So i think this is a typo-bug and it should be a CONFIG_ define. The code wasn't changed since linux is in git, so probably no one has used the mmio module, cause there can't be a difference to the normal pio module. If you think this ifdefs should be removed, i can send a patch.

Quoted 2 lines

I fixed this some time ago but the patches are still not in mainline. You can find them in -mm tree: http://userweb.kernel.org/~akpm/mmotm/

So you made me rather reluctant by reporting that the rewrite didn't actually work for you. I'm rather wary of transforming non-compiled code into non-working code in case we lose some clue in the process. However, if you can get it working, I'll be delighted to apply it.

James

#3 lore raw
In reply to Christian Dietrich
Quoted 13 lines · Christian Dietrich

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 drivers/scsi sourcetree for
config Items not defined in Kconfig and found such a case. 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.

Quoted 8 lines

I encountered, that the CONFIG_SCSI_G_NCR5380_MEM symbol in drivers/scsi/g_NCR5380.c isn't defined anywhere. So this codeblocks seems to be unreachable. But there is a define in g_NCR5380_mmio.c for SCSI_G_NCR5380_MEM with an include of g_NCR5380.c. So i think this is a typo-bug and it should be a CONFIG_ define. The code wasn't changed since linux is in git, so probably no one has used the mmio module, cause there can't be a difference to the normal pio module. If you think this ifdefs should be removed, i can send a patch.

Actually, I'd rather not remove any code like this. We have no documentation for the board, so that code represents the only knowledge we have about how to program it. Although, in theory, git will remember, in practice no-one will know where to look for it if they want to try resurrecting the MMIO code.

James