Re: [PATCH v4 2/5] scsi: hisi_sas: Relocate some code to reduce complexity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/12/2018 14:17, Johannes Thumshirn wrote:
On 06/12/2018 14:34, John Garry wrote:
[...]
+static void hisi_sas_dma_unmap(struct hisi_hba *hisi_hba,
+			       struct sas_task *task, int n_elem,
+			       int n_elem_req, int n_elem_resp)
+{
+	struct device *dev = hisi_hba->dev;
+
+	if (!sas_protocol_ata(task->task_proto)) {
+		if (task->num_scatter) {
+			if (n_elem)
+				dma_unmap_sg(dev, task->scatter,
+					     task->num_scatter,
+					     task->data_dir);
+		} else if (task->task_proto & SAS_PROTOCOL_SMP) {
+			if (n_elem_req)
+				dma_unmap_sg(dev, &task->smp_task.smp_req,
+					     1, DMA_TO_DEVICE);
+			if (n_elem_resp)
+				dma_unmap_sg(dev, &task->smp_task.smp_resp,
+					     1, DMA_FROM_DEVICE);
+		}
+	}

	if (sas_protocol_ata(task->task_proto))
		return;

Would save you a level of indentation and make the above more readable.



Hi Johannes,

Whilst I agree with the idea, the current approach makes the function more symmetic with its mapping buddy, hisi_sas_dma_map():

static void hisi_sas_dma_unmap(struct hisi_hba *hisi_hba,
                   struct sas_task *task, int n_elem,
                   int n_elem_req, int n_elem_resp)
{
    struct device *dev = hisi_hba->dev;

    if (!sas_protocol_ata(task->task_proto)) {
        if (task->num_scatter) {
            if (n_elem)
                dma_unmap_sg(dev, task->scatter,

	...
}

static int hisi_sas_dma_map(struct hisi_hba *hisi_hba,
                struct sas_task *task, int *n_elem,
                int *n_elem_req, int *n_elem_resp)
{
    struct device *dev = hisi_hba->dev;
    int rc;

    if (sas_protocol_ata(task->task_proto)) {
        *n_elem = task->num_scatter;
    } else {
        unsigned int req_len, resp_len;

        if (task->num_scatter) {
            *n_elem = dma_map_sg(dev, task->scatter,
                         task->num_scatter, task->data_dir);
   		...

}

which is important. Let me know if you disagree and I can change it.

Thanks,
John





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux