> I can't think of a way to avoid second pass over scatterlist without
> duplicating code (ata_qc_prep() and ata_fill_sg() from libata-core.c).
This appears to be incomplete:
> + VPRINTK("Splitting last PRD.\n");
> +
> + ap->prd[idx - 1].flags_len -=
> cpu_to_le32(SG_COUNT_ASIC_BUG);
> + VPRINTK("PRD[%u] = (0x%X, 0x%X)\n", idx - 1, addr,
> SG_COUNT_ASIC_BUG);
> +
> + addr = le32_to_cpu(ap->prd[idx - 1].addr) + len -
> SG_COUNT_ASIC_BUG;
> + len = SG_COUNT_ASIC_BUG;
> + ap->prd[idx].addr = cpu_to_le32(addr);
> + ap->prd[idx].flags_len = cpu_to_le32(len);
> + VPRINTK("PRD[%u] = (0x%X, 0x%X)\n", idx, addr, len);
> +
> + idx++;
What guarantees you have enough PRD entries to do this without changing
the limit in the structures ?
Otherwise looks good
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html