diff options
author | Oleg Nesterov <oleg@redhat.com> | 2012-11-21 12:01:43 -0500 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2013-02-08 11:47:01 -0500 |
commit | f0744af7d0fde190674064c54e2ff60b34ac71fe (patch) | |
tree | 1fbe365e02f6d11c1a8837689578ef9b0874f0fa /kernel/events | |
parent | bbc33d05930f870ea049eae5ed980f8b827d0813 (diff) |
uprobes: Kill the pointless inode/uc checks in register/unregister
register/unregister verifies that inode/uc != NULL. For what?
This really looks like "hide the potential problem", the caller
should pass the valid data.
register() also checks uc->next == NULL, probably to prevent the
double-register but the caller can do other stupid/wrong things.
If we do this check, then we should document that uc->next should
be cleared before register() and add BUG_ON().
Also add the small comment about the i_size_read() check.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/events')
-rw-r--r-- | kernel/events/uprobes.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index afbab2cb2742..a39d8163b713 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c | |||
@@ -844,9 +844,7 @@ int uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer * | |||
844 | struct uprobe *uprobe; | 844 | struct uprobe *uprobe; |
845 | int ret; | 845 | int ret; |
846 | 846 | ||
847 | if (!inode || !uc || uc->next) | 847 | /* Racy, just to catch the obvious mistakes */ |
848 | return -EINVAL; | ||
849 | |||
850 | if (offset > i_size_read(inode)) | 848 | if (offset > i_size_read(inode)) |
851 | return -EINVAL; | 849 | return -EINVAL; |
852 | 850 | ||
@@ -883,9 +881,6 @@ void uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consume | |||
883 | { | 881 | { |
884 | struct uprobe *uprobe; | 882 | struct uprobe *uprobe; |
885 | 883 | ||
886 | if (!inode || !uc) | ||
887 | return; | ||
888 | |||
889 | uprobe = find_uprobe(inode, offset); | 884 | uprobe = find_uprobe(inode, offset); |
890 | if (!uprobe) | 885 | if (!uprobe) |
891 | return; | 886 | return; |