Lines Matching refs:cpa
193 static void free_chan_prog(struct ccw1 *cpa) in free_chan_prog() argument
195 struct ccw1 *ptr = cpa; in free_chan_prog()
201 kfree(cpa); in free_chan_prog()
215 struct ccw1 *cpa; in alloc_chan_prog() local
226 cpa = kcalloc(rec_count + 1, sizeof(struct ccw1), in alloc_chan_prog()
228 if (!cpa) in alloc_chan_prog()
232 cpa[i].cmd_code = WRITE_CCW_CMD; in alloc_chan_prog()
233 cpa[i].flags = CCW_FLAG_CC | CCW_FLAG_SLI; in alloc_chan_prog()
234 cpa[i].count = reclen; in alloc_chan_prog()
237 free_chan_prog(cpa); in alloc_chan_prog()
240 cpa[i].cda = (u32)(addr_t) kbuf; in alloc_chan_prog()
242 free_chan_prog(cpa); in alloc_chan_prog()
248 cpa[i].cmd_code = CCW_CMD_NOOP; in alloc_chan_prog()
249 return cpa; in alloc_chan_prog()
252 static int do_ur_io(struct urdev *urd, struct ccw1 *cpa) in do_ur_io() argument
258 TRACE("do_ur_io: cpa=%p\n", cpa); in do_ur_io()
267 rc = ccw_device_start(cdev, cpa, 1, 0, 0); in do_ur_io()
421 struct ccw1 *cpa; in do_write() local
424 cpa = alloc_chan_prog(udata, count / reclen, reclen); in do_write()
425 if (IS_ERR(cpa)) in do_write()
426 return PTR_ERR(cpa); in do_write()
428 rc = do_ur_io(urd, cpa); in do_write()
440 free_chan_prog(cpa); in do_write()