@@ -211,52 +211,30 @@ static int dao_set_right_input(struct dao *dao, struct rsc *input)
211
211
return 0 ;
212
212
}
213
213
214
- static int dao_clear_left_input (struct dao * dao )
214
+ static int dao_clear_input (struct dao * dao , unsigned int start , unsigned int end )
215
215
{
216
- struct imapper * entry ;
217
- struct daio * daio = & dao -> daio ;
218
- int i ;
216
+ unsigned int i ;
219
217
220
- if (!dao -> imappers [0 ])
218
+ if (!dao -> imappers [start ])
221
219
return 0 ;
222
-
223
- entry = dao -> imappers [0 ];
224
- dao -> mgr -> imap_delete (dao -> mgr , entry );
225
- /* Program conjugate resources */
226
- for (i = 1 ; i < daio -> rscl .msr ; i ++ ) {
227
- entry = dao -> imappers [i ];
228
- dao -> mgr -> imap_delete (dao -> mgr , entry );
220
+ for (i = start ; i < end ; i ++ ) {
221
+ dao -> mgr -> imap_delete (dao -> mgr , dao -> imappers [i ]);
229
222
dao -> imappers [i ] = NULL ;
230
223
}
231
224
232
- kfree (dao -> imappers [0 ]);
233
- dao -> imappers [0 ] = NULL ;
234
-
235
225
return 0 ;
236
226
}
237
227
238
- static int dao_clear_right_input (struct dao * dao )
239
- {
240
- struct imapper * entry ;
241
- struct daio * daio = & dao -> daio ;
242
- int i ;
243
228
244
- if (!dao -> imappers [daio -> rscl .msr ])
245
- return 0 ;
246
-
247
- entry = dao -> imappers [daio -> rscl .msr ];
248
- dao -> mgr -> imap_delete (dao -> mgr , entry );
249
- /* Program conjugate resources */
250
- for (i = 1 ; i < daio -> rscr .msr ; i ++ ) {
251
- entry = dao -> imappers [daio -> rscl .msr + i ];
252
- dao -> mgr -> imap_delete (dao -> mgr , entry );
253
- dao -> imappers [daio -> rscl .msr + i ] = NULL ;
254
- }
255
-
256
- kfree (dao -> imappers [daio -> rscl .msr ]);
257
- dao -> imappers [daio -> rscl .msr ] = NULL ;
229
+ static int dao_clear_left_input (struct dao * dao )
230
+ {
231
+ return dao_clear_input (dao , 0 , dao -> daio .rscl .msr );
232
+ }
258
233
259
- return 0 ;
234
+ static int dao_clear_right_input (struct dao * dao )
235
+ {
236
+ return dao_clear_input (dao , dao -> daio .rscl .msr ,
237
+ dao -> daio .rscl .msr + dao -> daio .rscr .msr );
260
238
}
261
239
262
240
static const struct dao_rsc_ops dao_ops = {
0 commit comments