@@ -94,14 +94,17 @@ static void mac_exception(void *handle, enum fman_mac_exceptions ex)
94
94
__func__ , ex );
95
95
}
96
96
97
- static void set_fman_mac_params (struct mac_device * mac_dev ,
98
- struct fman_mac_params * params )
97
+ static int set_fman_mac_params (struct mac_device * mac_dev ,
98
+ struct fman_mac_params * params )
99
99
{
100
100
struct mac_priv_s * priv = mac_dev -> priv ;
101
101
102
102
params -> base_addr = (typeof (params -> base_addr ))
103
103
devm_ioremap (priv -> dev , mac_dev -> res -> start ,
104
104
resource_size (mac_dev -> res ));
105
+ if (!params -> base_addr )
106
+ return - ENOMEM ;
107
+
105
108
memcpy (& params -> addr , mac_dev -> addr , sizeof (mac_dev -> addr ));
106
109
params -> max_speed = priv -> max_speed ;
107
110
params -> phy_if = mac_dev -> phy_if ;
@@ -112,6 +115,8 @@ static void set_fman_mac_params(struct mac_device *mac_dev,
112
115
params -> event_cb = mac_exception ;
113
116
params -> dev_id = mac_dev ;
114
117
params -> internal_phy_node = priv -> internal_phy_node ;
118
+
119
+ return 0 ;
115
120
}
116
121
117
122
static int tgec_initialization (struct mac_device * mac_dev )
@@ -123,7 +128,9 @@ static int tgec_initialization(struct mac_device *mac_dev)
123
128
124
129
priv = mac_dev -> priv ;
125
130
126
- set_fman_mac_params (mac_dev , & params );
131
+ err = set_fman_mac_params (mac_dev , & params );
132
+ if (err )
133
+ goto _return ;
127
134
128
135
mac_dev -> fman_mac = tgec_config (& params );
129
136
if (!mac_dev -> fman_mac ) {
@@ -169,7 +176,9 @@ static int dtsec_initialization(struct mac_device *mac_dev)
169
176
170
177
priv = mac_dev -> priv ;
171
178
172
- set_fman_mac_params (mac_dev , & params );
179
+ err = set_fman_mac_params (mac_dev , & params );
180
+ if (err )
181
+ goto _return ;
173
182
174
183
mac_dev -> fman_mac = dtsec_config (& params );
175
184
if (!mac_dev -> fman_mac ) {
@@ -218,7 +227,9 @@ static int memac_initialization(struct mac_device *mac_dev)
218
227
219
228
priv = mac_dev -> priv ;
220
229
221
- set_fman_mac_params (mac_dev , & params );
230
+ err = set_fman_mac_params (mac_dev , & params );
231
+ if (err )
232
+ goto _return ;
222
233
223
234
if (priv -> max_speed == SPEED_10000 )
224
235
params .phy_if = PHY_INTERFACE_MODE_XGMII ;
0 commit comments