1. 08 4月, 2009 4 次提交
    • S
      ide: refactor tf_load() method · c9ff9e7b
      Sergei Shtylyov 提交于
      Simplify tf_load() method, making it deal only with 'struct ide_taskfile' and
      the validity flags that the upper layer passes, and moving the code that deals
      with the high order bytes into the only function interested, do_rw_taskfile().
      
      This should stop the needless code duplication in this method and so make
      it about twice smaller than it was; along with simplifying the setup for the
      method call, this should save both time and space...
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c9ff9e7b
    • S
      ide: simplify 'struct ide_taskfile' · 745483f1
      Sergei Shtylyov 提交于
      Make 'struct ide_taskfile' cover only 8 register values and thus put two such
      fields ('tf' and 'hob') into 'struct ide_cmd', dropping unnecessary 'tf_array'
      field from it.
      
      This required changing the prototype of ide_get_lba_addr() and ide_tf_dump().
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      [bart: fix setting of ATA_LBA bit for LBA48 commands in __ide_do_rw_disk()]
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      745483f1
    • S
      ide: replace IDE_TFLAG_* flags by IDE_VALID_* · 60f85019
      Sergei Shtylyov 提交于
      Replace IDE_TFLAG_{IN|OUT}_* flags meaning to the taskfile register validity on
      input/output by the IDE_VALID_* flags and introduce 4 symmetric 8-bit register
      validity indicator subfields, 'valid.{input/output}.{tf|hob}', into the 'struct
      ide_cmd' instead of using the 'tf_flags' field for that purpose (this field can
      then be turned from 32-bit into 8-bit one).
      Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      60f85019
    • L
      Fix build errors due to CONFIG_BRANCH_TRACER=y · aeeae868
      Linus Torvalds 提交于
      The code that enables branch tracing for all (non-constant) branches
      plays games with the preprocessor and #define's the C 'if ()' construct
      to do tracing.
      
      That's all fine, but it fails for some unusual but valid C code that is
      sometimes used in macros, notably by the intel-iommu code:
      
      	if (i=drhd->iommu, drhd->ignored) ..
      
      because now the preprocessor complains about multiple arguments to the
      'if' macro.
      
      So make the macro expansion of this particularly horrid trick use
      varargs, and handle the case of comma-expressions in if-statements.  Use
      another macro to do it cleanly in just one place.
      
      This replaces a patch by David (and acked by Steven) that did this all
      inside that one already-too-horrid macro.
      Tested-by: NIngo Molnar <mingo@elte.hu>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      aeeae868
  2. 07 4月, 2009 36 次提交