lkml.org 
[lkml]   [2009]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectFAQ on 2nd VFAT patch
    From
    Following the feedback from the first patch, we have put together a
    short FAQ that tries to address the kinds of questions that were
    raised during that discussion. The Linux Foundation has organized for
    a patent attorney, John Lanza, to be available to answer legal
    questions that come up, to the extent that he is able to. John is CCd
    on this email.

    Cheers, Tridge

    ------

    Q1. Has this patch undergone legal review?

    A1. Both the original patch and the new patch that we posted today
    have been through legal review by several lawyers who specialize
    in this area. We can't post all of the details of those reviews,
    but John Lanza is CCd on this email, and hopefully he will be
    able to answer any questions that arise or if he can't answer
    some question he may be able to explain why he can't answer
    it. John is a patent attorney who represents the Linux
    Foundation.


    Q2. What can we safely post on LKML about patent infringement?

    A2. Almost nothing. Even a statement of the form "If A were the case,
    then B would result in infringement of patent C" is extremely
    dangerous. It allows a patent attorney to argue that truth or
    falsity of A is a legal question of fact, even if A is an obvious
    technical fallacy (remember that the patent holder can call on
    its own expert witnesses). The existence of a legal question of
    fact can be used to defeat a pre-trial summary judgment motion
    for noninfringement and dismissal of the lawsuit. The defeat of
    pre-trial summary judgment motions results in the suit going to
    trial, which is always quite expensive. The patent holder can be
    expected to choose a target that cannot afford a trial, resulting
    in a settlement or capitulation. The patent holder can then use
    the fact that target #1 settled to apply more pressure on targets
    #2, #3, and so on.

    This can happen even if you later clearly state that A is an
    obvious technical fallacy. The patent holder would just say
    something like, "Your Honor, J. Random Hacker admitted that B is
    the case, and we will prove that he was mistaken when he later
    retracted that admission and tried to claim that A was an obvious
    technical fallacy. We will demonstrate, by Mr. Hacker's own
    words, that our valuable patent C is in fact infringed." The
    patent holder might well lose that point later at trial, but only
    if the target can afford to go to trial in the first place.

    In short, anything posted on LKML is on the public record and can
    therefore be read and archived and used by patent holders to
    convince a judge to dismiss summary judgment motions in order to
    threaten a costly trial and try to force a settlement.


    Q3. Why should we apply a patch to avoid a patent that might be invalid?

    A3. It takes a lot of time in the courts (and thus, a lot of money)
    to legally prove that a patent is invalid, and in the meantime
    the patent remains at least a nuisance and in practice still
    dangerous. Any damage done during this time period, to both
    persons and organizations, might well be permanent -- it might
    never be possible to repair that damage, even if the patent
    should eventually be invalidated. On the other hand, a patch
    that avoids both the patent and regressions in function and
    performance can greatly reduce the danger of such damage.

    One of the specific dangers that needs to be addressed is
    illustrated by the ITC action that Microsoft took against TomTom:

    http://www.itcblog.com/20090227/microsoft-files-new-337-complaint-against-tomtom-regarding-certain-portable-navigation-devices/

    That ITC action asked for TomTom's products to be seized at US
    borders, and might have effectively shutdown TomTom as a going
    concern in the US. If Microsoft did the same thing to another
    Linux vendor then even though the vendor might eventually win
    they could still be severely damaged just by having their market
    disrupted or frightened.

    The way to avoid this is to ensure that the Linux kernel is so
    obviously non-infringing that the case does not even go to trial.
    That means you have to have an extremely clear explanation of how
    the patent does not apply to your code. The aim of the patches we
    have posted is to ensure that we would meet that standard.


    Q4. Suppose we accept such a patch. How do we deal with the
    possibility that future bug fixes undo the patch?

    A4. This is a very real concern. In this case, I hope that the
    explanation below provides Hirofumi-san the information needed to
    avoid this possibility. If some future patch looks to him like
    it might re-introduce the problem, he could check with one of the
    people who submitted this patch.

    This is similar to what a subsystem maintainer does when they
    check with the owner of some exotic piece of hardware whether a
    proposed patch would break the kernel on that hardware.


    Q5. Why do you believe that this patch avoids the patent?

    A5. It is not appropriate for us to provide the full details of the
    legal reasoning on a public forum, but we can sketch out some
    facts here which may be helpful. Then if you have any more
    specific questions you can direct them to John Lanza. You should
    note that this sketch is not a legal opinion, because legal
    opinions are given to direct clients, not to a public forum like
    lkml.

    The claims of both of the VFAT patents "create" or "store" a long
    filename entry. The first patch we posted changed the code so
    that long filename entries are never created or stored. That
    patch left unchanged the code for reading long filename entries,
    and so the patch kept the functionality of reading existing long
    filenames. The result is a patch that loses some functionality
    (creating or storing long filenames), but did no creating or
    storing of long filenames.

    The 2nd patch we just posted takes a different approach. The
    claims of both of the VFAT patents involve the creation (or
    storing) of both a long filename and a short filename for a file.
    The 2nd patch only creates/stores either a short filename or a
    long filename for a file, but never both. The 11 bytes created by
    vfat_build_dummy_83_buffer() to pad the field for short filenames
    cannot be used to access the file, and contain bytes which are
    invalid in FAT and VFAT filenames, and therefore are not
    filenames as that term is and has been used in the technical
    community.


    Q6. Why the random values for the field in which the short filename
    would normally be stored?

    A6. The patch includes some comments that explain why we chose those
    particular byte values. Basically we needed to minimise the
    chance of triggering a bug in WindowsXP where some values would
    cause XP to crash with a blue screen (Vista and Windows7 do not
    seem to have this bug). The values were also chosen to have a
    quite low chance of causing any problems with chkdsk.exe on
    Windows.


    Q7. What if I need to access the files with an old version of DOS
    or Windows that does not understand long filenames?

    A7. In this case, you can use the msdos filesystem to enforce 8.3
    format names. We believe that these old versions are
    sufficiently rare that this is not a real concern.


    Q8. The first patch was configured off by default, while this patch
    is configured on by default. Why the difference in behavior?

    A8. The first patch disabled significant function, while this new
    patch allows all the filenames allowed by the VFAT format. If
    accepted, it is of course up to the maintainers to decide what
    the default should be in mainline, or even if the patch should be
    unconditional. We are happy with any of these three choices
    (configurable default disabled, configurable default enabled, or
    unconditionally disabled).


    \
     
     \ /
      Last update: 2009-06-26 21:25    [W:0.056 / U:0.236 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site