Skip to content

Commit

Permalink
libata: make it clear that sata_inic162x is experimental
Browse files Browse the repository at this point in the history
sata_inic162x never reached a state where it's reliable enough for
production use and data corruption is a relatively common occurrence.
Make the driver generate warning about the issues and mark the Kconfig
option as experimental.

If the situation doesn't improve, we'd be better off making it depend
on CONFIG_BROKEN.  Let's wait for several cycles and see if the kernel
message draws any attention.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Martin Braure de Calignon <braurede@free.fr>
Reported-by: Ben Hutchings <ben@decadent.org.uk>
Reported-by: risc4all@yahoo.com
  • Loading branch information
Tejun Heo committed Jul 22, 2013
1 parent 42b9ab7 commit bb96961
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/ata/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ config SATA_FSL
If unsure, say N.

config SATA_INIC162X
tristate "Initio 162x SATA support"
tristate "Initio 162x SATA support (Very Experimental)"
depends on PCI
help
This option enables support for Initio 162x Serial ATA.
Expand Down
14 changes: 14 additions & 0 deletions drivers/ata/sata_inic162x.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@
*
* This file is released under GPL v2.
*
* **** WARNING ****
*
* This driver never worked properly and unfortunately data corruption is
* relatively common. There isn't anyone working on the driver and there's
* no support from the vendor. Do not use this driver in any production
* environment.
*
* http://thread.gmane.org/gmane.linux.debian.devel.bugs.rc/378525/focus=54491
* https://bugzilla.kernel.org/show_bug.cgi?id=60565
*
* *****************
*
* This controller is eccentric and easily locks up if something isn't
* right. Documentation is available at initio's website but it only
* documents registers (not programming model).
Expand Down Expand Up @@ -807,6 +819,8 @@ static int inic_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)

ata_print_version_once(&pdev->dev, DRV_VERSION);

dev_alert(&pdev->dev, "inic162x support is broken with common data corruption issues and will be disabled by default, contact linux-ide@vger.kernel.org if in production use\n");

/* alloc host */
host = ata_host_alloc_pinfo(&pdev->dev, ppi, NR_PORTS);
hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL);
Expand Down

0 comments on commit bb96961

Please sign in to comment.