On Fri, 2016-12-23 at 20:23 -0800, Himanshu Madhani wrote:
> +void qlt_unknown_atio_work_fn(struct delayed_work *work)
> +{
> +     struct scsi_qla_host *vha = container_of(work, struct scsi_qla_host,
> +             unknown_atio_work);
> +     qlt_try_to_dequeue_unknown_atios(vha, 0);
> +     return;
> +}
> +
> [ ... ]
> +     INIT_DELAYED_WORK(&base_vha->unknown_atio_work,
> +             (void (*)(struct work_struct *))qlt_unknown_atio_work_fn);

Hello Himanshu and Quinn,

Please follow the approach for delayed work that is followed elsewhere in
the kernel, namely:
* Use struct work_struct * for the argument type of delayed work functions.
* Do not use a function pointer cast in the INIT_DELAYED_WORK() macro.

This change will require to modify the container_of() expression. Here are
two examples from other kernel drivers:

        hctx = container_of(work, struct blk_mq_hw_ctx, delay_work.work);

        struct srp_rport *rport = container_of(to_delayed_work(work),
                                        struct srp_rport, reconnect_work);

Thanks,

Bart.--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to