On Mon, 2015-03-02 at 05:38 +0100, Sebastian Reichel wrote: > +static int cs_alloc_cmds(struct cs_hsi_iface *hi) > +{ > + struct hsi_msg *msg; > + u32 *buf; > + unsigned int i; > + > + INIT_LIST_HEAD(&hi->cmdqueue); > + > + for (i = 0; i < CS_MAX_CMDS; i++) { > + msg = hsi_alloc_msg(1, GFP_ATOMIC);
Why does this need to be ATOMIC? > + if (!msg) > + goto out; > + buf = kmalloc(sizeof(*buf), GFP_ATOMIC); > + if (!buf) { > + hsi_free_msg(msg); > + goto out; > + } > + sg_init_one(msg->sgt.sgl, buf, sizeof(*buf)); > + msg->channel = CONTROL_HSI_CH; > + msg->context = hi; > + list_add_tail(&msg->link, &hi->cmdqueue); > + } > + > + return 0; > + > +out: > + cs_free_cmds(hi); > + return -ENOMEM; > +} > + -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html