1. 06 5月, 2012 1 次提交
    • S
      kbuild: refactor final link of sparc32 · 95698570
      Sam Ravnborg 提交于
      sparc32 uses an additional final link to support btfix.
      Introduce a new set of exported variables in the top-level Makefile
      to make the extra linking step simpler.
      
      sparc32 has hardcoded knowledge of kallsyms support. This fix
      include support for EXTRA_KALLSYM_PASS=1.
      The ugly part is that it is hardcoded in the arch/sparc/boot
      Makefile.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      95698570
  2. 31 3月, 2012 1 次提交
  3. 30 3月, 2012 2 次提交
  4. 29 3月, 2012 3 次提交
  5. 28 3月, 2012 1 次提交
  6. 26 3月, 2012 1 次提交
  7. 24 3月, 2012 1 次提交
  8. 22 3月, 2012 1 次提交
  9. 21 3月, 2012 1 次提交
    • B
      sparc/PCI: convert devtree and arch-probed bus addresses to resource · a031589b
      Bjorn Helgaas 提交于
      Normal PCI enumeration via PCI config space uses __pci_read_base(), where
      the PCI core applies any bus-to-resource offset.  But sparc sometimes
      reads PCI config space itself, and sometimes it gets addresses from the
      device tree.
      
      In ac1edcc5, I converted sparc to use the PCI core bus-to-resource
      conversion, but I missed these sparc-specific paths.  I don't have a way
      to test it, but I think sparc is broken between that commit and this one.
      
      This patch replaces the sparc-specific pci_resource_adjust() with the
      generic pcibios_bus_to_resource() in the following paths:
      
          pci_cfg_fake_ranges()       (addresses read from PCI config)
          apb_fake_ranges()           (addresses computed based on PCI config)
          of_scan_pci_bridge()        (addresses from OF "ranges" property)
      
      N.B.: Resources of non-P2P bridge devices are set in pci_parse_of_addrs()
      and, as far as I can see, never converted to CPU addresses.  I do not
      understand why these would be treated differently than bridge windows.
      
      CC: "David S. Miller" <davem@davemloft.net>
      CC: sparclinux@vger.kernel.org
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      a031589b
  10. 20 3月, 2012 1 次提交
  11. 16 3月, 2012 1 次提交
    • C
      [PATCH v3] ipc: provide generic compat versions of IPC syscalls · 48b25c43
      Chris Metcalf 提交于
      When using the "compat" APIs, architectures will generally want to
      be able to make direct syscalls to msgsnd(), shmctl(), etc., and
      in the kernel we would want them to be handled directly by
      compat_sys_xxx() functions, as is true for other compat syscalls.
      
      However, for historical reasons, several of the existing compat IPC
      syscalls do not do this.  semctl() expects a pointer to the fourth
      argument, instead of the fourth argument itself.  msgsnd(), msgrcv()
      and shmat() expect arguments in different order.
      
      This change adds an ARCH_WANT_OLD_COMPAT_IPC config option that can be
      set to preserve this behavior for ports that use it (x86, sparc, powerpc,
      s390, and mips).  No actual semantics are changed for those architectures,
      and there is only a minimal amount of code refactoring in ipc/compat.c.
      
      Newer architectures like tile (and perhaps future architectures such
      as arm64 and unicore64) should not select this option, and thus can
      avoid having any IPC-specific code at all in their architecture-specific
      compat layer.  In the same vein, if this option is not selected, IPC_64
      mode is assumed, since that's what the <asm-generic> headers expect.
      
      The workaround code in "tile" for msgsnd() and msgrcv() is removed
      with this change; it also fixes the bug that shmat() and semctl() were
      not being properly handled.
      Reviewed-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      48b25c43
  12. 14 3月, 2012 1 次提交
  13. 05 3月, 2012 2 次提交
  14. 01 3月, 2012 2 次提交
  15. 27 2月, 2012 1 次提交
    • G
      irq_domain: Centralize definition of irq_dispose_mapping() · d593f25f
      Grant Likely 提交于
      Several architectures define their own empty irq_dispose_mapping().  Since
      the irq_domain code is centralized now, there is little need to do so.  This
      patch removes them and creates a new empty copy when !CONFIG_IRQ_DOMAIN is
      selected.
      
      The patch also means that IRQ_DOMAIN becomes selectable on all architectures.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: sparclinux@vger.kernel.org
      Cc: linux@lists.openrisc.net
      d593f25f
  16. 24 2月, 2012 4 次提交
    • B
      net: Add framework to allow sending packets with customized CRC. · 3bdc0eba
      Ben Greear 提交于
      This is useful for testing RX handling of frames with bad
      CRCs.
      
      Requires driver support to actually put the packet on the
      wire properly.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      3bdc0eba
    • I
      static keys: Introduce 'struct static_key', static_key_true()/false() and... · c5905afb
      Ingo Molnar 提交于
      static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]()
      
      So here's a boot tested patch on top of Jason's series that does
      all the cleanups I talked about and turns jump labels into a
      more intuitive to use facility. It should also address the
      various misconceptions and confusions that surround jump labels.
      
      Typical usage scenarios:
      
              #include <linux/static_key.h>
      
              struct static_key key = STATIC_KEY_INIT_TRUE;
      
              if (static_key_false(&key))
                      do unlikely code
              else
                      do likely code
      
      Or:
      
              if (static_key_true(&key))
                      do likely code
              else
                      do unlikely code
      
      The static key is modified via:
      
              static_key_slow_inc(&key);
              ...
              static_key_slow_dec(&key);
      
      The 'slow' prefix makes it abundantly clear that this is an
      expensive operation.
      
      I've updated all in-kernel code to use this everywhere. Note
      that I (intentionally) have not pushed through the rename
      blindly through to the lowest levels: the actual jump-label
      patching arch facility should be named like that, so we want to
      decouple jump labels from the static-key facility a bit.
      
      On non-jump-label enabled architectures static keys default to
      likely()/unlikely() branches.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NJason Baron <jbaron@redhat.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: a.p.zijlstra@chello.nl
      Cc: mathieu.desnoyers@efficios.com
      Cc: davem@davemloft.net
      Cc: ddaney.cavm@gmail.com
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20120222085809.GA26397@elte.huSigned-off-by: NIngo Molnar <mingo@elte.hu>
      c5905afb
    • B
      PCI: collapse pcibios_resource_to_bus · fb127cb9
      Bjorn Helgaas 提交于
      Everybody uses the generic pcibios_resource_to_bus() supplied by the core
      now, so remove the ARCH_HAS_GENERIC_PCI_OFFSETS used during conversion.
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      fb127cb9
    • B
      sparc/PCI: get rid of device resource fixups · ac1edcc5
      Bjorn Helgaas 提交于
      Tell the PCI core about host bridge address translation so it can take
      care of bus-to-resource conversion for us.
      
      N.B. Leon apparently never uses initial BAR values, so it didn't matter
      that we never fixed up the I/O resources from bus address to CPU addresses.
      
      Other sparc uses pci_of_scan_bus(), which sets device resources directly
      to CPU addresses, not bus addresses, so it didn't need pcibios_fixup_bus()
      either.  But by telling the core about the offsets, we can nuke
      pcibios_resource_to_bus().
      
      CC: "David S. Miller" <davem@davemloft.net>
      CC: sparclinux@vger.kernel.org
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      ac1edcc5
  17. 22 2月, 2012 1 次提交
    • P
      sock: Introduce the SO_PEEK_OFF sock option · ef64a54f
      Pavel Emelyanov 提交于
      This one specifies where to start MSG_PEEK-ing queue data from. When
      set to negative value means that MSG_PEEK works as ususally -- peeks
      from the head of the queue always.
      
      When some bytes are peeked from queue and the peeking offset is non
      negative it is moved forward so that the next peek will return next
      portion of data.
      
      When non-peeking recvmsg occurs and the peeking offset is non negative
      is is moved backward so that the next peek will still peek the proper
      data (i.e. the one that would have been picked if there were no non
      peeking recv in between).
      
      The offset is set using per-proto opteration to let the protocol handle
      the locking issues and to check whether the peeking offset feature is
      supported by the protocol the socket belongs to.
      Signed-off-by: NPavel Emelyanov <xemul@parallels.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ef64a54f
  18. 15 2月, 2012 1 次提交
  19. 02 2月, 2012 1 次提交
  20. 18 1月, 2012 2 次提交
    • E
      audit: inline audit_syscall_entry to reduce burden on archs · b05d8447
      Eric Paris 提交于
      Every arch calls:
      
      if (unlikely(current->audit_context))
      	audit_syscall_entry()
      
      which requires knowledge about audit (the existance of audit_context) in
      the arch code.  Just do it all in static inline in audit.h so that arch's
      can remain blissfully ignorant.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      b05d8447
    • E
      Audit: push audit success and retcode into arch ptrace.h · d7e7528b
      Eric Paris 提交于
      The audit system previously expected arches calling to audit_syscall_exit to
      supply as arguments if the syscall was a success and what the return code was.
      Audit also provides a helper AUDITSC_RESULT which was supposed to simplify things
      by converting from negative retcodes to an audit internal magic value stating
      success or failure.  This helper was wrong and could indicate that a valid
      pointer returned to userspace was a failed syscall.  The fix is to fix the
      layering foolishness.  We now pass audit_syscall_exit a struct pt_reg and it
      in turns calls back into arch code to collect the return value and to
      determine if the syscall was a success or failure.  We also define a generic
      is_syscall_success() macro which determines success/failure based on if the
      value is < -MAX_ERRNO.  This works for arches like x86 which do not use a
      separate mechanism to indicate syscall failure.
      
      We make both the is_syscall_success() and regs_return_value() static inlines
      instead of macros.  The reason is because the audit function must take a void*
      for the regs.  (uml calls theirs struct uml_pt_regs instead of just struct
      pt_regs so audit_syscall_exit can't take a struct pt_regs).  Since the audit
      function takes a void* we need to use static inlines to cast it back to the
      arch correct structure to dereference it.
      
      The other major change is that on some arches, like ia64, MIPS and ppc, we
      change regs_return_value() to give us the negative value on syscall failure.
      THE only other user of this macro, kretprobe_example.c, won't notice and it
      makes the value signed consistently for the audit functions across all archs.
      
      In arch/sh/kernel/ptrace_64.c I see that we were using regs[9] in the old
      audit code as the return value.  But the ptrace_64.h code defined the macro
      regs_return_value() as regs[3].  I have no idea which one is correct, but this
      patch now uses the regs_return_value() function, so it now uses regs[3].
      
      For powerpc we previously used regs->result but now use the
      regs_return_value() function which uses regs->gprs[3].  regs->gprs[3] is
      always positive so the regs_return_value(), much like ia64 makes it negative
      before calling the audit code when appropriate.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Acked-by: H. Peter Anvin <hpa@zytor.com> [for x86 portion]
      Acked-by: Tony Luck <tony.luck@intel.com> [for ia64]
      Acked-by: Richard Weinberger <richard@nod.at> [for uml]
      Acked-by: David S. Miller <davem@davemloft.net> [for sparc]
      Acked-by: Ralf Baechle <ralf@linux-mips.org> [for mips]
      Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> [for ppc]
      d7e7528b
  21. 11 1月, 2012 2 次提交
  22. 07 1月, 2012 3 次提交
  23. 04 1月, 2012 1 次提交
  24. 31 12月, 2011 1 次提交
  25. 30 12月, 2011 2 次提交
    • S
      sparc32: fix PAGE_SIZE definition · a4b4f437
      Sam Ravnborg 提交于
      Use _AC() in definition of PAGE_SIZE so the same definition
      can be used in C and assembler.
      Also use PAGE_SIZE in definition of THREAD_SIZE.
      
      This commit kill the following comment:
      
          "I have my suspicions... -DaveM"
      
      I did not find any clue what this referred to anyway.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a4b4f437
    • S
      sparc32: enable different preemptions models · b2a1fa30
      Sam Ravnborg 提交于
      While chasing following warning from kconfig I noticed that the
      kconfig preemption model symbols were all dependent on sparc64.
      
      warning: (PREEMPT && DEBUG_ATOMIC_SLEEP) selects PREEMPT_COUNT which has unmet direct dependencies (SPARC64)
      
      >From arch/sparc/Kconfig:
      
              if SPARC64
              source "kernel/Kconfig.preempt"
              endif
      
      But looking a bit closer I see nothing obvious why
      sparc32 should not support the various preemption models.
      Drop the "if SPARC64" conditional to enable selection of
      preemption model on sparc32 too.
      
      Build-tested - but not run-time tested all three models.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b2a1fa30
  26. 28 12月, 2011 2 次提交