1#!/bin/bash
2
3file=$1
4if [[ "$file" = "" ]] ; then
5    echo "Usage:  $0 <file with smatch messages>"
6    exit 1
7fi
8
9IFS="
10"
11
12for line in $(grep 'dereferenced before' $file) ; do
13
14    code_file=$(echo "$line" | cut -d ':' -f1)
15    lineno=$(echo "$line" | cut -d ' ' -f1 | cut -d ':' -f2)
16    function=$(echo "$line" | cut -d ' ' -f2)
17    variable=$(echo "$line" | cut -d "'" -f3)
18    source_line=$(tail -n +$lineno $code_file | head -n 1 | sed -e 's/^\W*//')
19
20    if echo "$source_line" | grep -q rcu_assign_pointer ; then
21	continue
22    fi
23    if echo "$source_line" | grep -q '^\W*tda_' ; then
24	continue
25    fi
26    if echo "$source_line" | grep -q tda_fail ; then
27	continue
28    fi
29    if echo "$source_line" | grep -q '^\W*ATH5K_' ; then
30	continue
31    fi
32    if echo "$source_line" | grep -qw CMDINFO ; then
33	continue
34    fi
35    if echo "$source_line" | grep -qw dump_desc_dbg ; then
36	continue
37    fi
38    if echo "$source_line" | grep -qw CAMERA_IS_OPERATIONAL ; then
39	continue
40    fi
41    if echo "$source_line" | grep -qw USBVISION_IS_OPERATIONAL ; then
42	continue
43    fi
44    if echo "$source_line" | grep -qw DEV_INIT_TEST_WITH_RETURN ; then
45	continue
46    fi
47    if echo "$source_line" | grep -qw TW_PRINTK ; then
48	continue
49    fi
50    if echo "$source_line" | grep -qw RESET_ONE_SEC_TX_CNT ; then
51	continue
52    fi
53    if echo "$source_line" | grep -qw SOCK_DEBUG; then
54	continue
55    fi
56    if echo "$source_line" | grep -qw P80211SKB_RXMETA ; then
57	continue
58    fi
59    if echo "$source_line" | grep -qw ACM_READY ; then
60	continue
61    fi
62    if echo "$source_line" | grep -qw v4l2_subdev_notify ; then
63	continue
64    fi
65    if echo "$source_line" | egrep -qw 'tuner_(err|info)' ; then
66	continue
67    fi
68    if echo "$source_line" | grep -qw DBG_SKB ; then
69	continue
70    fi
71    if echo "$source_line" | grep -qw for_each_mddev ; then
72	continue
73    fi
74    if echo "$source_line" | grep -qw v4l2_subdev_call ; then
75	continue
76    fi
77    if echo "$source_line" | grep -qw VALID_CALLBACK ; then
78	continue
79    fi
80    if [ "$variable" == "bp->dev" ] && echo "$source_line" | grep -qw DP ; then
81	continue
82    fi
83    if echo "$source_line" | grep -qw BNX2X_ERR ; then
84	continue
85    fi
86    if echo "$source_line" | grep -qw FCOE_NETDEV_DBG ; then
87	continue
88    fi
89    if echo "$source_line" | grep -qw __rq_for_each_bio ; then
90	continue
91    fi
92    if echo "$source_line" | grep -qw IPS_DMA_DIR ; then
93	continue
94    fi
95    if [ "$variable" == "dev" ] && echo "$source_line" | grep -qw dprintk ; then
96	continue
97    fi
98
99    echo "$code_file:$lineno $function '$variable': $source_line"
100done
101
102