/* The caller of do_ur_io is responsible for kfree()ing the channel program address pointer that alloc_chan_prog returned.  */
static void free_chan_prog(struct ccw1 *cpa)
/* The caller of do_ur_io is responsible for kfree()ing the channel program address pointer that alloc_chan_prog returned.  */
static void free_chan_prog(struct ccw1 *cpa)
{
	struct ccw1 *ptr = cpa;
	while (ptr->cda) {
		kfree((void *)(addr_t) ptr->cda);
		ptr++;
	}
	kfree(cpa);
}