Lines Matching refs:cpa
211 static void free_chan_prog(struct ccw1 *cpa) in free_chan_prog() argument
213 struct ccw1 *ptr = cpa; in free_chan_prog()
219 kfree(cpa); in free_chan_prog()
233 struct ccw1 *cpa; in alloc_chan_prog() local
244 cpa = kzalloc((rec_count + 1) * sizeof(struct ccw1), in alloc_chan_prog()
246 if (!cpa) in alloc_chan_prog()
250 cpa[i].cmd_code = WRITE_CCW_CMD; in alloc_chan_prog()
251 cpa[i].flags = CCW_FLAG_CC | CCW_FLAG_SLI; in alloc_chan_prog()
252 cpa[i].count = reclen; in alloc_chan_prog()
255 free_chan_prog(cpa); in alloc_chan_prog()
258 cpa[i].cda = (u32)(addr_t) kbuf; in alloc_chan_prog()
260 free_chan_prog(cpa); in alloc_chan_prog()
266 cpa[i].cmd_code = CCW_CMD_NOOP; in alloc_chan_prog()
267 return cpa; in alloc_chan_prog()
270 static int do_ur_io(struct urdev *urd, struct ccw1 *cpa) in do_ur_io() argument
276 TRACE("do_ur_io: cpa=%p\n", cpa); in do_ur_io()
285 rc = ccw_device_start(cdev, cpa, 1, 0, 0); in do_ur_io()
417 struct ccw1 *cpa; in do_write() local
420 cpa = alloc_chan_prog(udata, count / reclen, reclen); in do_write()
421 if (IS_ERR(cpa)) in do_write()
422 return PTR_ERR(cpa); in do_write()
424 rc = do_ur_io(urd, cpa); in do_write()
436 free_chan_prog(cpa); in do_write()