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

Reply via email to