1. 23 4月, 2008 34 次提交
  2. 22 4月, 2008 6 次提交
    • J
      [IA64] minor irq handler cleanups · 9010eff0
      Jeff Garzik 提交于
      - remove unused 'irq' argument from pfm_do_interrupt_handler()
      
      - remove pointless cast to void*
      
      - add KERN_xxx prefix to printk()
      
      - remove braces around singleton C statement
      
      - in tioce_provider.c, start tioce_dma_consistent() and
        tioce_error_intr_handler() function declarations in column 0
      
      This change's main purpose is to prepare for the patchset in
      jgarzik/misc-2.6.git#irq-remove, that explores removal of the
      never-used 'irq' argument in each interrupt handler.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9010eff0
    • H
      [IA64] simplify notify hooks in mca.c · 4fa2f0e6
      Hidetoshi Seto 提交于
      There are many notify_die() and almost all take same style with
      ia64_mca_spin().  This patch defines macros and replace them all,
      to reduce lines and to improve readability.
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4fa2f0e6
    • H
      [IA64] do notify DIE_MCA_MONARCH_PROCESS for each monarchs · 284e5427
      Hidetoshi Seto 提交于
      There are 3 hooks in MCA handler, but this DIE_MCA_MONARCH_PROCESS
      event does not notified other than for the first monarch.
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      284e5427
    • H
      [IA64] disable interrupts on exit of ia64_trace_syscall · 38477ad7
      Hidetoshi Seto 提交于
      While testing with CONFIG_VIRT_CPU_ACCOUNTING=y, I found that
      I occasionally get very huge system time in some threads.
      
      So I dug the issue and finally noticed that it was caused
      because of an interrupt which interrupt in the following window:
      
      > [arch/ia64/kernel/entry.S: (!CONFIG_PREEMPT && CONFIG_VIRT_CPU_ACCOUNTING)]
      >
      > ENTRY(ia64_leave_syscall)
      >    :
      > (pUStk) rsm psr.i
      >         cmp.eq pLvSys,p0=r0,r0          // pLvSys=1: leave from syscall
      > (pUStk) cmp.eq.unc p6,p0=r0,r0          // p6 <- pUStk
      > .work_processed_syscall:
      >         adds r2=PT(LOADRS)+16,r12
      > (pUStk) mov.m r22=ar.itc                        // fetch time at leave
      >         adds r18=TI_FLAGS+IA64_TASK_SIZE,r13
      >         ;;
      > <<< window: from here >>>
      > (p6)    ld4 r31=[r18]  // load current_thread_info()->flags
      >         ld8 r19=[r2],PT(B6)-PT(LOADRS)
      >         adds r3=PT(AR_BSPSTORE)+16,r12
      >         ;;
      >         mov r16=ar.bsp
      >         ld8 r18=[r2],PT(R9)-PT(B6)
      > (p6)    and r15=TIF_WORK_MASK,r31  // any work other than TIF_SYSCALL_TRACE?
      >         ;;
      >         ld8 r23=[r3],PT(R11)-PT(AR_BSPSTORE)
      > (p6)    cmp4.ne.unc p6,p0=r15, r0               // any special work pending?
      > (p6)    br.cond.spnt .work_pending_syscall
      >         ;;
      >         ld8 r9=[r2],PT(CR_IPSR)-PT(R9)
      >         ld8 r11=[r3],PT(CR_IIP)-PT(R11)
      > (pNonSys) break 0 // bug check: we shouldn't be here if pNonSys is TRUE!
      >         ;;
      >         invala
      > <<< window: to here >>>
      >         rsm psr.i | psr.ic // turn off interrupts and interruption collection
      
      If pUStk is true, it means we are going to return user mode, hence we fetch
      ar.itc to get time at leave from system.
      It seems that it is not possible to interrupt the window if pUStk is true,
      because interrupts are disabled early.  And also disabling interrupt makes
      sense because it is safe for referring current_thread_info()->flags.
      
      However interrupting the window while pUStk is true was possible.
      The route was:
      ia64_trace_syscall
      -> .work_pending_syscall_end
      -> .work_processed_syscall
      Only in case entering the window from this route, interrupts are enabled
      during in the window even if pUStk is true.  I suppose interrupts must be
      disabled here anyway if pUStk is true.
      I'm not sure but afraid that what kind of bad effect were there, other
      than crazy system time which I found.
      
      FYI, there was a commit 6f6d7582 that
      points out a bug at same point(exit of ia64_trace_syscall) in 2006.
      It can be said that there was an another bug.
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      38477ad7
    • R
      HID: Suppress hidinput for Samsung IR control · efa0f16b
      Robert Schedel 提交于
      Samsung USB remotes (0419:0001) report six keys via standard HID usage pages
      (arrow keys, OK, Power).  Kernel 2.6.25 maps those to input events (in addition
      to the hiddev report).  The remaining 43 keys are reported via proprietary HID
      report page and therefore by hiddev only.
      
      Applications using hiddev and input device might process the 6 standard keys
      twice.  To avoid this, the input device will be suppressed for the Samsung
      remote with a quirk entry, forcing to use the hiddev device only.
      
      LIRC already contains the proper support.
      Signed-off-by: NRobert Schedel <r.schedel@yahoo.de>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      efa0f16b
    • J
      HID: remove 60x GTCO devices from blacklist · 42098a55
      Jiri Kosina 提交于
      Jeremy Robertson reports that GTCO engineers made a mistake and we don't
      need 0x60x GTCO product ids blacklisted.
      
      This mostly reverts dda3fd35, but leaves PID 0x1007 intact.
      Reported-by: NJeremy Roberson <jeremy.roberson@einstruction.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      42098a55