1. 28 1月, 2009 3 次提交
  2. 27 1月, 2009 8 次提交
  3. 26 1月, 2009 1 次提交
  4. 22 1月, 2009 2 次提交
  5. 21 1月, 2009 2 次提交
    • J
      klist.c: bit 0 in pointer can't be used as flag · c0e69a5b
      Jesper Nilsson 提交于
      The commit a1ed5b0c
      (klist: don't iterate over deleted entries) introduces use of the
      low bit in a pointer to indicate if the knode is dead or not,
      assuming that this bit is always free.
      
      This is not true for all architectures, CRIS for example may align data
      on byte borders.
      
      The result is a bunch of warnings on bootup, devices not being
      added correctly etc, reported by Hinko Kocevar <hinko.kocevar@cetrtapot.si>:
      
      ------------[ cut here ]------------
      WARNING: at lib/klist.c:62 ()
      Modules linked in:
      
      Stack from c1fe1cf0:
             c01cc7f4 c1fe1d11 c000eb4e c000e4de 00000000 00000000 c1f4f78f c1f50c2d
             c01d008c c1fdd1a0 c1fdd1a0 c1fe1d38 c0192954 c1fe0000 00000000 c1fe1dc0
             00000002 7fffffff c1fe1da8 c0192d50 c1fe1dc0 00000002 7fffffff c1ff9fcc
      Call Trace: [<c000eb4e>] [<c000e4de>] [<c0192954>] [<c0192d50>] [<c001d49e>] [<c000b688>] [<c0192a3c>]
             [<c000b63e>] [<c000b63e>] [<c001a542>] [<c00b55b0>] [<c00411c0>] [<c00b559c>] [<c01918e6>] [<c0191988>]
             [<c01919d0>] [<c00cd9c8>] [<c00cdd6a>] [<c0034178>] [<c000409a>] [<c0015576>] [<c0029130>] [<c0029078>]
             [<c0029170>] [<c0012336>] [<c00b4076>] [<c00b4770>] [<c006d6e4>] [<c006d974>] [<c006dca0>] [<c0028d6c>]
             [<c0028e12>] [<c0006424>] <4>---[ end trace 4eaa2a86a8e2da22 ]---
      ------------[ cut here ]------------
      Repeat ad nauseam.
      
      Wed, Jan 14, 2009 at 12:11:32AM +0100, Bastien ROUCARIES wrote:
      > Perhaps using a pointerhackalign trick on this structure where
      > #define pointerhackalign(x) __attribute__ ((aligned (x)))
      > and declare
      > struct klist_node {
      > ...
      > }  pointerhackalign(2);
      >
      > Because  __attribute__ ((aligned (x))) could only increase alignment
      > it will safe to do that and serve as documentation purpose :)
      
      That works, but we need to do it not for the struct klist_node,
      but for the struct we insert into the void * in klist_node,
      which is struct klist.
      
      Reported-by: Hinko Kocevar <hinko.kocevar@cetrtapot.si
      Cc: Bastien ROUCARIES <roucaries.bastien@gmail.com>
      Signed-off-by: NJesper Nilsson <jesper.nilsson@axis.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c0e69a5b
    • I
      debugfs: introduce stub for debugfs_create_size_t() when DEBUG_FS=n · 8adb711f
      Inaky Perez-Gonzalez 提交于
      Toralf Förster <toralf.foerster@gmx.de> reported a build failure in
      the WiMAX stack when CONFIG_DEBUG_FS=n
      
      http://linuxwimax.org/pipermail/wimax/2009-January/000449.html
      
      This is due to debugfs_create_size_t() missing an stub that returns
      -ENODEV when the DEBUGFS subsystem is not configured in (like the rest
      of the debugfs API).
      
      This patch adds said stub.
      Reported-by: NToralf Förster <toralf.foerster@gmx.de>
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8adb711f
  6. 20 1月, 2009 2 次提交
  7. 17 1月, 2009 2 次提交
    • R
      PCI PM: Restore standard config registers of all devices early · aa8c6c93
      Rafael J. Wysocki 提交于
      There is a problem in our handling of suspend-resume of PCI devices that
      many of them have their standard config registers restored with
      interrupts enabled and they are put into the full power state with
      interrupts enabled as well.  This may lead to the following scenario:
        * an interrupt vector is shared between two or more devices
        * one device is resumed earlier and generates an interrupt
        * the interrupt handler of another device tries to handle it and
          attempts to access the device the config space of which hasn't been
          restored yet and/or which still is in a low power state
        * the system crashes as a result
      
      To prevent this from happening we should restore the standard
      configuration registers of all devices with interrupts disabled and we
      should put them into the D0 power state right after that.
      Unfortunately, this cannot be done using the existing
      pci_set_power_state(), because it can sleep.  Also, to do it we have to
      make sure that the config spaces of all devices were actually saved
      during suspend.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      aa8c6c93
    • J
      quota: Improve locking · cc33412f
      Jan Kara 提交于
      We implement dqget() and dqput() that need neither dqonoff_mutex nor dqptr_sem.
      Then move dqget() and dqput() calls so that they are not called from under
      dqptr_sem. This is important because filesystem callbacks aren't called from
      under dqptr_sem which used to cause *lots* of problems with lock ranking
      (and with OCFS2 they became close to unsolvable).
      
      The patch also removes two functions which were introduced solely because OCFS2
      needed them to cope with the old locking scheme. As time showed, they were not
      enough for OCFS2 anyway and it would be unnecessary work to adapt them to the
      new locking scheme in which they aren't needed.  As a result OCFS2 needs the
      following patch to compile properly with quotas.  Sorry to any bisecters which
      hit this in advance.
      Signed-off-by: NJan Kara <jack@suse.cz>
      cc33412f
  8. 16 1月, 2009 7 次提交
  9. 15 1月, 2009 4 次提交
    • B
      net: Add init_dummy_netdev() and fix EMAC driver using it · 937f1ba5
      Benjamin Herrenschmidt 提交于
      This adds an init_dummy_netdev() function that gets a network device
      structure (allocation and lifetime entirely under caller's control) and
      initialize the minimum amount of fields so it can be used to schedule
      NAPI polls without registering a full blown interface. This is to be
      used by drivers that need to tie several hardware interfaces to a single
      NAPI poll scheduler due to HW limitations.
      
      It also updates the ibm_newemac driver to use that, this fixing the
      oops on 2.6.29 due to passing NULL as "dev" to netif_napi_add()
      
      Symbol is exported GPL only a I don't think we want binary drivers doing
      that sort of acrobatics (if we want them at all).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Tested-by: NGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      937f1ba5
    • H
      byteorder: make swab.h include asm/swab.h like a regular header · 74d96f01
      Harvey Harrison 提交于
      Add swab.h to kbuild.asm and remove the individual entries from
      each arch, mark as unifdef as some arches have some kernel-only
      bits inside.
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      74d96f01
    • B
      IDE: fix sparse signed-ness errors with host->host_busy · e720b9e4
      Ben Dooks 提交于
      The host_busy field in struct ide_host defaults to a
      signed-long, where most arch's test_and_set_bit_*
      macros use an unsigned long.
      
      Change to using an unsigned long, which on ARM removes
      the following sparse errors:
      
      drivers/ide/ide-io.c:681:8: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:681:8:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:681:8:    got long volatile *<noident>
      drivers/ide/ide-io.c:681:8: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:681:8:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:681:8:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
      drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
      drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e720b9e4
    • B
      it821x: Add ultra_mask quirk for Vortex86SX · b94b898f
      Brandon Philips 提交于
      On Vortex86SX with IDE controller revision 0x11 ultra DMA must be
      disabled. This patch was tested by DMP and seems to work.
      
      It is a cleaned up version of their older Kernel patch: 
       http://www.dmp.com.tw/tech/vortex86sx/patch-2.6.24-DMP.gzTested-by: NShawn Lin <shawn@dmp.com.tw>
      Signed-off-by: NBrandon Philips <bphilips@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b94b898f
  10. 14 1月, 2009 9 次提交