But if the drive was broken and someone had to write special software to fix it, how can you be sure that it was fixed correctly and completely? Can you also be sure that the "fix" works for all versions of firmware on the drive?
Because the fix is relatively simple.
To put in general terms:
- The problem is that the drive advertises a bunch of features. Linux tries to use them. But the firmware is buggy and the feature don't work or aren't even implemented.
- The fix is to ignore any advanced feature even if advertised by firmware. Stick to only the small subset of features that are also used in windows.
e.g:
- the most frequent problem with trim is that the device advertises supporting TRIM with NCQ (= reordering of commands).
(the latest firmware for Samsung 840 EVO started advertising this in addition of fixing the speed decay).
Linux *can* issue TRIM together with NCQ. So when the drives says it does, it will start using it.
But the drives doesn't work with TRIM and NCQ combined. There's a bug in the implementeation, or the firmware doesn't even support it.
(no Samsung 8?? actually support TRIM+NCQ. It's falsely reported as present by the firmware).
- Windows (and perhaps Mac OS X) aren't affected by this because they don't support it to begin with.
- Linux fix is to simply ignore the falsely advertised TRIM+NCQ. It reverts to either use NCQ, or use TRIM in a blocking (slow) way.
And that is a permanent fix because is simply reverts to a behavious similar to windows. No new problem should arise in Linux because it simply mimics the behaviour of Windows. If anything was still broken, it would be affecting Windows too.
It will work against any version of the firmware (Linux isn't tricking the firmware or trying to compensate. Just plain ignoring missing features).
Of course, the best would be to use 100% standard compliant SSD.
But reality is that not much *are* actually standard compliant.
So unless you're ready to shell lots of money for some actually enterprise-grade SSD,
accepting SSD with patched support is the next best option.