Re: [PATCH 9/20] libata: reimplement LLD init_one()'s using new init helpers

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

 



Tejun Heo wrote:
Reimplement LLD init_one()'s using new init helpers.  LLDs now follow
the following init model.

1. allocate host
2. acquire resources and initialize controller and host accordingly
3. attach host

At each step, libata provides comprehensive helpers and helps tracking
allocated resources.

The new init model...

* allows LLD init_one()'s to be more flexible and concentrate on
  higher-level logic

* results in code reduction in LLD init_one()'s even with more
  comments and proper error hanlding

* makes init_one()'s of different LLDs much more consistent making
  them easier to understand and harder to mess up

* makes init/deinit codes more easily shared with other parts by
  using the same target data structure (host and ap)

The following bug fixes/behavior changes are introduced by this patch.

* all LLDs deallocate resources properly on init failure

* pdev_busy handling made generic.  pdc_adma, sata_sil24, sata_nv,
  sata_qstor now deals with pdev_busy condition.

* PDC20619 (PATA) doesn't set ATA_FLAG_SATA for its lower two ports
  and doesn't initialize scr_addr's.

* PDC20375/20575 PATA port uses pdc_pata_ops instead of pdc_sata_ops

Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>

Unfortunately, while this patch seems correct, it is also difficult to review, and I'm thinking it reflects that another approach may need to be considered.

Usually the drivers and API are often change in small chunks, whereas this patchset is more along the lines of
1) add new helpers
2) update everything to use new helpers
3) delete old helpers

The previous approach was closer to
* small update to API & drivers
* small update to API & drivers
* small update to API & drivers
...

I recognize that we are changing the LLDD init model, but I bet if you think really hard, you could come up with a less-drastic transition path.


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux