Message ID | 20210817015719.518648-1-kevmitch@arista.com |
---|---|
State | New |
Headers | show |
Series | lkdtm: move SCSI_DISPATCH_CMD to scsi_queue_rq | expand |
On Mon, Aug 16, 2021 at 06:57:18PM -0700, Kevin Mitchell wrote: > When scsi_dispatch_cmd was moved to scsi_lib.c and made static, some > compilers (i.e., at least gcc 8.4.0) decided to compile this > inline. This is a problem for lkdtm.ko, which needs to insert a kprobe > on this function for the SCSI_DISPATCH_CMD crashpoint. > > Move this crashpoint one function up the call chain to > scsi_queue_rq. Though this is also a static function, it should never be > inlined because it is assigned as a structure entry. Therefore, > kprobe_register should always be able to find it. Since there is already > precedent for crashpoint names not exactly matching their probed > functions, keep the name of the crashpoint the same for backwards > compatibility. > > Fixes: 82042a2cdb55 ("scsi: move scsi_dispatch_cmd to scsi_lib.c") > Signed-off-by: Kevin Mitchell <kevmitch@arista.com> This looks ok. Does any userspace hardcode these names or can we use a saner name? Btw, generic_ide_ioctl is gone as well, together with the whole legacy ide subsystem.
diff --git a/drivers/misc/lkdtm/core.c b/drivers/misc/lkdtm/core.c index 9dda87c6b54a..c3db17e90631 100644 --- a/drivers/misc/lkdtm/core.c +++ b/drivers/misc/lkdtm/core.c @@ -82,7 +82,7 @@ static struct crashpoint crashpoints[] = { CRASHPOINT("FS_DEVRW", "ll_rw_block"), CRASHPOINT("MEM_SWAPOUT", "shrink_inactive_list"), CRASHPOINT("TIMERADD", "hrtimer_start"), - CRASHPOINT("SCSI_DISPATCH_CMD", "scsi_dispatch_cmd"), + CRASHPOINT("SCSI_DISPATCH_CMD", "scsi_queue_rq"), CRASHPOINT("IDE_CORE_CP", "generic_ide_ioctl"), #endif };
When scsi_dispatch_cmd was moved to scsi_lib.c and made static, some compilers (i.e., at least gcc 8.4.0) decided to compile this inline. This is a problem for lkdtm.ko, which needs to insert a kprobe on this function for the SCSI_DISPATCH_CMD crashpoint. Move this crashpoint one function up the call chain to scsi_queue_rq. Though this is also a static function, it should never be inlined because it is assigned as a structure entry. Therefore, kprobe_register should always be able to find it. Since there is already precedent for crashpoint names not exactly matching their probed functions, keep the name of the crashpoint the same for backwards compatibility. Fixes: 82042a2cdb55 ("scsi: move scsi_dispatch_cmd to scsi_lib.c") Signed-off-by: Kevin Mitchell <kevmitch@arista.com> --- drivers/misc/lkdtm/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)