summarylogtreecommitdiffstats
path: root/4.patch
blob: d73a713edb304f134baf0d187dbe599a9e5ac632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
commit b681682ec91bb594ecd35cfe79f4e8dfef95be1c
Author: Bruno Santos <brunomanuelsantos@tecnico.ulisboa.pt>
Date:   Thu May 20 22:58:35 2021 +0100

    Check the return value of mutex_lock_interruptible
    
    These locks may fail yet the error was not caught. This also has the
    benefit of suppressing some compilation warnings.

diff --git a/SocketCAN - Linux (V1.1.148.0)/can-ibxxx_socketcan/ixx_pci_ib_active.c b/SocketCAN - Linux (V1.1.148.0)/can-ibxxx_socketcan/ixx_pci_ib_active.c
index 00805dd..ebb5f13 100644
--- a/SocketCAN - Linux (V1.1.148.0)/can-ibxxx_socketcan/ixx_pci_ib_active.c	
+++ b/SocketCAN - Linux (V1.1.148.0)/can-ibxxx_socketcan/ixx_pci_ib_active.c	
@@ -466,7 +466,9 @@ static int ixx_act_ib_xxx_get_intf_caps(struct pci_dev *pdev,
         intf_caps_res.dal_res.ret_size = 0;
         intf_caps_res.dal_res.ret_code = 0xffffffff;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &intf_caps_req.dal_req,
                         &intf_caps_res.dal_res);
         if (err)
@@ -564,7 +566,9 @@ static int ixx_act_ib_xxx_init_ctrl(struct ixx_pci_priv* priv)
         ctrl_init_res.dal_res.ret_size = 0;
         ctrl_init_res.dal_res.ret_code = 0xffffffff;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &ctrl_init_req.dal_req,
                         &ctrl_init_res.dal_res);
 
@@ -626,7 +630,9 @@ static int ixx_act_ib_xxx_start_ctrl(struct ixx_pci_priv* priv, u32 * time_ref)
         ctrl_start_res.dal_res.ret_code = 0xffffffff;
         ctrl_start_res.start_time = 0;
 
-        mutex_lock_interruptible(&priv->intf->cmd_lock);
+        if (mutex_lock_interruptible(&priv->intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo,
                         &ctrl_start_req.dal_req, &ctrl_start_res.dal_res);
 
@@ -677,7 +683,9 @@ static int ixx_act_ib_xxx_stop_ctrl(struct ixx_pci_priv* priv)
         ctrl_stop_res.dal_res.ret_size = 0;
         ctrl_stop_res.dal_res.ret_code = 0xffffffff;
 
-        mutex_lock_interruptible(&priv->intf->cmd_lock);
+        if (mutex_lock_interruptible(&priv->intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &ctrl_stop_req.dal_req,
                         &ctrl_stop_res.dal_res);
         if (err)
@@ -726,7 +734,9 @@ static int ixx_act_ib_xxx_get_dev_info(struct ixx_pci_interface * intf,
         dev_info_res.dal_res.ret_size = 0;
         dev_info_res.dal_res.ret_code = 0xffffffff;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &dev_info_req.dal_req,
                         &dev_info_res.dal_res);
         if (err)
@@ -1937,7 +1947,9 @@ static int ixx_act_ib_xxx_trigger_int(struct pci_dev *pdev,
         trigger_res.dal_res.ret_size = 0;
         trigger_res.dal_res.ret_code = 0xFFFFFFFF;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &trigger_req.dal_req,
                         &trigger_res.dal_res);
         if (err)
@@ -1993,7 +2005,9 @@ static int ixx_act_ib_xxx_test_cmd(struct pci_dev *pdev,
                 bmg_request->data[index] = (u8) index + 1;
         }
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         /* Execute command */
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &bmg_request->dal_req,
                         &bmg_response->dal_res);
@@ -2061,7 +2075,9 @@ static int ixx_act_ib_xxx_test_dma(struct pci_dev *pdev,
         read_res->dal_res.ret_size = 0;
         read_res->dal_res.ret_code = 0xFFFFFFFF;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &read_req.dal_req,
                         &read_res->dal_res);
         if (err)
@@ -2187,7 +2203,9 @@ static int ixx_act_ib_xxx_start_fw(struct pci_dev *pdev,
         start_res.dal_res.ret_size = 0;
         start_res.dal_res.ret_code = 0xFFFFFFFF;
 
-        mutex_lock_interruptible(&intf->cmd_lock);
+        if (mutex_lock_interruptible(&intf->cmd_lock))
+                return err;
+
         err = ixx_act_ib_xxx_send_cmd(intf, tx_cmd_fifo, &start_req.dal_req,
                         &start_res.dal_res);
         if (err)