1. 14 12月, 2012 2 次提交
    • E
      tuntap: dont use skb after netif_rx_ni(skb) · 49974420
      Eric Dumazet 提交于
      On Wed, 2012-12-12 at 23:16 -0500, Dave Jones wrote:
      > Since todays net merge, I see this when I start openvpn..
      >
      > general protection fault: 0000 [#1] PREEMPT SMP
      > Modules linked in: ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack nf_conntrack ip6table_filter ip6_tables xfs iTCO_wdt iTCO_vendor_support snd_emu10k1 snd_util_mem snd_ac97_codec coretemp ac97_bus microcode snd_hwdep snd_seq pcspkr snd_pcm snd_page_alloc snd_timer lpc_ich i2c_i801 snd_rawmidi mfd_core snd_seq_device snd e1000e soundcore emu10k1_gp gameport i82975x_edac edac_core vhost_net tun macvtap macvlan kvm_intel kvm binfmt_misc nfsd auth_rpcgss nfs_acl lockd sunrpc btrfs libcrc32c zlib_deflate firewire_ohci sata_sil firewire_core crc_itu_t radeon i2c_algo_bit drm_kms_helper ttm drm i2c_core floppy
      > CPU 0
      > Pid: 1381, comm: openvpn Not tainted 3.7.0+ #14                  /D975XBX
      > RIP: 0010:[<ffffffff815b54a4>]  [<ffffffff815b54a4>] skb_flow_dissect+0x314/0x3e0
      > RSP: 0018:ffff88007d0d9c48  EFLAGS: 00010206
      > RAX: 000000000000055d RBX: 6b6b6b6b6b6b6b4b RCX: 1471030a0180040a
      > RDX: 0000000000000005 RSI: 00000000ffffffe0 RDI: ffff8800ba83fa80
      > RBP: ffff88007d0d9cb8 R08: 0000000000000000 R09: 0000000000000000
      > R10: 0000000000000000 R11: 0000000000000101 R12: ffff8800ba83fa80
      > R13: 0000000000000008 R14: ffff88007d0d9cc8 R15: ffff8800ba83fa80
      > FS:  00007f6637104800(0000) GS:ffff8800bf600000(0000) knlGS:0000000000000000
      > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      > CR2: 00007f563f5b01c4 CR3: 000000007d140000 CR4: 00000000000007f0
      > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      > Process openvpn (pid: 1381, threadinfo ffff88007d0d8000, task ffff8800a540cd60)
      > Stack:
      >  ffff8800ba83fa80 0000000000000296 0000000000000000 0000000000000000
      >  ffff88007d0d9cc8 ffffffff815bcff4 ffff88007d0d9ce8 ffffffff815b1831
      >  ffff88007d0d9ca8 00000000703f6364 ffff8800ba83fa80 0000000000000000
      > Call Trace:
      >  [<ffffffff815bcff4>] ? netif_rx+0x114/0x4c0
      >  [<ffffffff815b1831>] ? skb_copy_datagram_from_iovec+0x61/0x290
      >  [<ffffffff815b672a>] __skb_get_rxhash+0x1a/0xd0
      >  [<ffffffffa03b9538>] tun_get_user+0x418/0x810 [tun]
      >  [<ffffffff8135f468>] ? delay_tsc+0x98/0xf0
      >  [<ffffffff8109605c>] ? __rcu_read_unlock+0x5c/0xa0
      >  [<ffffffffa03b9a41>] tun_chr_aio_write+0x81/0xb0 [tun]
      >  [<ffffffff81145011>] ? __buffer_unlock_commit+0x41/0x50
      >  [<ffffffff811db917>] do_sync_write+0xa7/0xe0
      >  [<ffffffff811dc01f>] vfs_write+0xaf/0x190
      >  [<ffffffff811dc375>] sys_write+0x55/0xa0
      >  [<ffffffff81705540>] tracesys+0xdd/0xe2
      > Code: 41 8b 44 24 68 41 2b 44 24 6c 01 de 29 f0 83 f8 03 0f 8e a0 00 00 00 48 63 de 49 03 9c 24 e0 00 00 00 48 85 db 0f 84 72 fe ff ff <8b> 03 41 89 46 08 b8 01 00 00 00 e9 43 fd ff ff 0f 1f 40 00 48
      > RIP  [<ffffffff815b54a4>] skb_flow_dissect+0x314/0x3e0
      >  RSP <ffff88007d0d9c48>
      > ---[ end trace 6d42c834c72c002e ]---
      >
      >
      > Faulting instruction is
      >
      >    0:	8b 03                	mov    (%rbx),%eax
      >
      > rbx is slab poison (-20) so this looks like a use-after-free here...
      >
      >                         flow->ports = *ports;
      >  314:   8b 03                   mov    (%rbx),%eax
      >  316:   41 89 46 08             mov    %eax,0x8(%r14)
      >
      > in the inlined skb_header_pointer in skb_flow_dissect
      >
      > 	Dave
      >
      
      commit 96442e42 (tuntap: choose the txq based on rxq) added
      a use after free.
      
      Cache rxhash in a temp variable before calling netif_rx_ni()
      Reported-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Acked-by: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      49974420
    • D
      nfc: remove noisy message from llcp_sock_sendmsg · 026e43de
      Dave Jones 提交于
      This is easily triggerable when fuzz-testing as an unprivileged user.
      We could rate-limit it, but given we don't print similar messages
      for other protocols, I just removed it.
      Signed-off-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      026e43de
  2. 13 12月, 2012 22 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 6be35c70
      Linus Torvalds 提交于
      Pull networking changes from David Miller:
      
      1) Allow to dump, monitor, and change the bridge multicast database
         using netlink.  From Cong Wang.
      
      2) RFC 5961 TCP blind data injection attack mitigation, from Eric
         Dumazet.
      
      3) Networking user namespace support from Eric W. Biederman.
      
      4) tuntap/virtio-net multiqueue support by Jason Wang.
      
      5) Support for checksum offload of encapsulated packets (basically,
         tunneled traffic can still be checksummed by HW).  From Joseph
         Gasparakis.
      
      6) Allow BPF filter access to VLAN tags, from Eric Dumazet and
         Daniel Borkmann.
      
      7) Bridge port parameters over netlink and BPDU blocking support
         from Stephen Hemminger.
      
      8) Improve data access patterns during inet socket demux by rearranging
         socket layout, from Eric Dumazet.
      
      9) TIPC protocol updates and cleanups from Ying Xue, Paul Gortmaker, and
         Jon Maloy.
      
      10) Update TCP socket hash sizing to be more in line with current day
          realities.  The existing heurstics were choosen a decade ago.
          From Eric Dumazet.
      
      11) Fix races, queue bloat, and excessive wakeups in ATM and
          associated drivers, from Krzysztof Mazur and David Woodhouse.
      
      12) Support DOVE (Distributed Overlay Virtual Ethernet) extensions
          in VXLAN driver, from David Stevens.
      
      13) Add "oops_only" mode to netconsole, from Amerigo Wang.
      
      14) Support set and query of VEB/VEPA bridge mode via PF_BRIDGE, also
          allow DCB netlink to work on namespaces other than the initial
          namespace.  From John Fastabend.
      
      15) Support PTP in the Tigon3 driver, from Matt Carlson.
      
      16) tun/vhost zero copy fixes and improvements, plus turn it on
          by default, from Michael S. Tsirkin.
      
      17) Support per-association statistics in SCTP, from Michele
          Baldessari.
      
      And many, many, driver updates, cleanups, and improvements.  Too
      numerous to mention individually.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits)
        net/mlx4_en: Add support for destination MAC in steering rules
        net/mlx4_en: Use generic etherdevice.h functions.
        net: ethtool: Add destination MAC address to flow steering API
        bridge: add support of adding and deleting mdb entries
        bridge: notify mdb changes via netlink
        ndisc: Unexport ndisc_{build,send}_skb().
        uapi: add missing netconf.h to export list
        pkt_sched: avoid requeues if possible
        solos-pci: fix double-free of TX skb in DMA mode
        bnx2: Fix accidental reversions.
        bna: Driver Version Updated to 3.1.2.1
        bna: Firmware update
        bna: Add RX State
        bna: Rx Page Based Allocation
        bna: TX Intr Coalescing Fix
        bna: Tx and Rx Optimizations
        bna: Code Cleanup and Enhancements
        ath9k: check pdata variable before dereferencing it
        ath5k: RX timestamp is reported at end of frame
        ath9k_htc: RX timestamp is reported at end of frame
        ...
      6be35c70
    • L
      Merge tag 'for-linus-20121212' of... · e37aa63e
      Linus Torvalds 提交于
      Merge tag 'for-linus-20121212' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-mn10300
      
      Pull MN10300 changes from David Howells:
       "miscellaneous MN10300 arch patches.  I've based it on top of Al Viro's
        signal tree - so these patches should be pulled after that."
      
      * tag 'for-linus-20121212' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-mn10300:
        MN10300: Use asm-generic/pci_iomap.h
        MN10300: Get rid of unused variable from ASB2305 PCI code
        MN10300: ASB2305 PCI code needs linux/irq.h
        mn10300/mm/fault.c: Port OOM changes to do_page_fault
        MN10300: Handle cacheable PCI regions in pci_iomap()
        MN10300: fix debug polling in ttySM driver
        MN10300: ttySM: clean up unnecessary casting
        MN10300: fix SMP synchronization between txdma and serial driver
        MN10300: fix serial port vdma irq setup for SMP
        MN10300: cleanup IRQ affinity setting
        MN10300: ttySM: Use memory barriers correctly in circular buffer logic
      e37aa63e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 9977d9b3
      Linus Torvalds 提交于
      Pull big execve/kernel_thread/fork unification series from Al Viro:
       "All architectures are converted to new model.  Quite a bit of that
        stuff is actually shared with architecture trees; in such cases it's
        literally shared branch pulled by both, not a cherry-pick.
      
        A lot of ugliness and black magic is gone (-3KLoC total in this one):
      
         - kernel_thread()/kernel_execve()/sys_execve() redesign.
      
           We don't do syscalls from kernel anymore for either kernel_thread()
           or kernel_execve():
      
           kernel_thread() is essentially clone(2) with callback run before we
           return to userland, the callbacks either never return or do
           successful do_execve() before returning.
      
           kernel_execve() is a wrapper for do_execve() - it doesn't need to
           do transition to user mode anymore.
      
           As a result kernel_thread() and kernel_execve() are
           arch-independent now - they live in kernel/fork.c and fs/exec.c
           resp.  sys_execve() is also in fs/exec.c and it's completely
           architecture-independent.
      
         - daemonize() is gone, along with its parts in fs/*.c
      
         - struct pt_regs * is no longer passed to do_fork/copy_process/
           copy_thread/do_execve/search_binary_handler/->load_binary/do_coredump.
      
         - sys_fork()/sys_vfork()/sys_clone() unified; some architectures
           still need wrappers (ones with callee-saved registers not saved in
           pt_regs on syscall entry), but the main part of those suckers is in
           kernel/fork.c now."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits)
        do_coredump(): get rid of pt_regs argument
        print_fatal_signal(): get rid of pt_regs argument
        ptrace_signal(): get rid of unused arguments
        get rid of ptrace_signal_deliver() arguments
        new helper: signal_pt_regs()
        unify default ptrace_signal_deliver
        flagday: kill pt_regs argument of do_fork()
        death to idle_regs()
        don't pass regs to copy_process()
        flagday: don't pass regs to copy_thread()
        bfin: switch to generic vfork, get rid of pointless wrappers
        xtensa: switch to generic clone()
        openrisc: switch to use of generic fork and clone
        unicore32: switch to generic clone(2)
        score: switch to generic fork/vfork/clone
        c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()
        take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h
        mn10300: switch to generic fork/vfork/clone
        h8300: switch to generic fork/vfork/clone
        tile: switch to generic clone()
        ...
      
      Conflicts:
      	arch/microblaze/include/asm/Kbuild
      9977d9b3
    • L
      Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · cf4af012
      Linus Torvalds 提交于
      Pull ARM SoC board updates from Olof Johansson:
       "This branch contains a set of various board updates for ARM platforms.
      
        A few shmobile platforms that are stale have been removed, some
        defconfig updates for various boards selecting new features such as
        pinctrl subsystem support, and various updates enabling peripherals,
        etc."
      
      Fix up conflicts mostly as per Olof.
      
      * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (58 commits)
        ARM: S3C64XX: Add dummy supplies for Glenfarclas LDOs
        ARM: S3C64XX: Add registration of WM2200 Bells device on Cragganmore
        ARM: kirkwood: Add Plat'Home OpenBlocks A6 support
        ARM: Dove: update defconfig
        ARM: Kirkwood: update defconfig for new boards
        arm: orion5x: add DT related options in defconfig
        arm: orion5x: convert 'LaCie Ethernet Disk mini v2' to Device Tree
        arm: orion5x: basic Device Tree support
        arm: orion5x: mechanical defconfig update
        ARM: kirkwood: Add support for the MPL CEC4
        arm: kirkwood: add support for ZyXEL NSA310
        ARM: Kirkwood: new board USI Topkick
        ARM: kirkwood: use gpio-fan DT binding on lsxl
        ARM: Kirkwood: add Netspace boards to defconfig
        ARM: kirkwood: DT board setup for Network Space Mini v2
        ARM: kirkwood: DT board setup for Network Space Lite v2
        ARM: kirkwood: DT board setup for Network Space v2 and parents
        leds: leds-ns2: add device tree binding
        ARM: Kirkwood: Enable the second I2C bus
        ARM: mmp: select pinctrl driver
        ...
      cf4af012
    • L
      Merge tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d027db13
      Linus Torvalds 提交于
      Pull ARM SoC updates from Olof Johansson:
       "This contains the bulk of new SoC development for this merge window.
      
        Two new platforms have been added, the sunxi platforms (Allwinner A1x
        SoCs) by Maxime Ripard, and a generic Broadcom platform for a new
        series of ARMv7 platforms from them, where the hope is that we can
        keep the platform code generic enough to have them all share one mach
        directory.  The new Broadcom platform is contributed by Christian
        Daudt.
      
        Highbank has grown support for Calxeda's next generation of hardware,
        ECX-2000.
      
        clps711x has seen a lot of cleanup from Alexander Shiyan, and he's
        also taken on maintainership of the platform.
      
        Beyond this there has been a bunch of work from a number of people on
        converting more platforms to IRQ domains, pinctrl conversion, cleanup
        and general feature enablement across most of the active platforms."
      
      Fix up trivial conflicts as per Olof.
      
      * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (174 commits)
        mfd: vexpress-sysreg: Remove LEDs code
        irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids
        clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids
        irq: versatile: delete dangling variable
        ARM: sunxi: add missing include for mdelay()
        ARM: EXYNOS: Avoid early use of of_machine_is_compatible()
        ARM: dts: add node for PL330 MDMA1 controller for exynos4
        ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412
        ARM: EXYNOS: add UART3 to DEBUG_LL ports
        ARM: S3C24XX: Add clkdev entry for camif-upll clock
        ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers
        ARM: sunxi: Add missing sun4i.dtsi file
        pinctrl: samsung: Do not initialise statics to 0
        ARM i.MX6: remove gate_mask from pllv3
        ARM i.MX6: Fix ethernet PLL clocks
        ARM i.MX6: rename PLLs according to datasheet
        ARM i.MX6: Add pwm support
        ARM i.MX51: Add pwm support
        ARM i.MX53: Add pwm support
        ARM: mx5: Replace clk_register_clkdev with clock DT lookup
        ...
      d027db13
    • L
      Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d01e4afd
      Linus Torvalds 提交于
      Pull ARM SoC cleanups on various subarchitectures from Olof Johansson:
       "Cleanup patches for various ARM platforms and some of their associated
        drivers.  There's also a branch in here that enables Freescale i.MX to
        be part of the multiplatform support -- the first "big" SoC that is
        moved over (more multiplatform work comes in a separate branch later
        during the merge window)."
      
      Conflicts fixed as per Olof, including a silent semantic one in
      arch/arm/mach-omap2/board-generic.c (omap_prcm_restart() was renamed to
      omap3xxx_restart(), and a new user of the old name was added).
      
      * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (189 commits)
        ARM: omap: fix typo on timer cleanup
        ARM: EXYNOS: Remove unused regs-mem.h file
        ARM: EXYNOS: Remove unused non-dt support for dwmci controller
        ARM: Kirkwood: Use hw_pci.ops instead of hw_pci.scan
        ARM: OMAP3: cm-t3517: use GPTIMER for system clock
        ARM: OMAP2+: timer: remove CONFIG_OMAP_32K_TIMER
        ARM: SAMSUNG: use devm_ functions for ADC driver
        ARM: EXYNOS: no duplicate mask/unmask in eint0_15
        ARM: S3C24XX: SPI clock channel setup is fixed for S3C2443
        ARM: EXYNOS: Remove i2c0 resource information and setting of device names
        ARM: Kirkwood: checkpatch cleanups
        ARM: Kirkwood: Fix sparse warnings.
        ARM: Kirkwood: Remove unused includes
        ARM: kirkwood: cleanup lsxl board includes
        ARM: integrator: use BUG_ON where possible
        ARM: integrator: push down SC dependencies
        ARM: integrator: delete static UART1 mapping
        ARM: integrator: delete SC mapping on the CP
        ARM: integrator: remove static CP syscon mapping
        ARM: integrator: remove static AP syscon mapping
        ...
      d01e4afd
    • L
      Merge tag 'headers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8287361a
      Linus Torvalds 提交于
      Pull ARM SoC Header cleanups from Olof Johansson:
       "This is a collection of header file cleanups, mostly for OMAP and
        AT91, that keeps moving the platforms in the direction of
        multiplatform by removing the need for mach-dependent header files
        used in drivers and other places."
      
      Fix up mostly trivial conflicts as per Olof.
      
      * tag 'headers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (106 commits)
        ARM: OMAP2+: Move iommu/iovmm headers to platform_data
        ARM: OMAP2+: Make some definitions local
        ARM: OMAP2+: Move iommu2 to drivers/iommu/omap-iommu2.c
        ARM: OMAP2+: Move plat/iovmm.h to include/linux/omap-iommu.h
        ARM: OMAP2+: Move iopgtable header to drivers/iommu/
        ARM: OMAP: Merge iommu2.h into iommu.h
        atmel: move ATMEL_MAX_UART to platform_data/atmel.h
        ARM: OMAP: Remove omap_init_consistent_dma_size()
        arm: at91: move at91rm9200 rtc header in drivers/rtc
        arm: at91: move reset controller header to arm/arm/mach-at91
        arm: at91: move pit define to the driver
        arm: at91: move at91_shdwc.h to arch/arm/mach-at91
        arm: at91: move board header to arch/arm/mach-at91
        arn: at91: move at91_tc.h to arch/arm/mach-at91
        arm: at91 move at91_aic.h to arch/arm/mach-at91
        arm: at91 move board.h to arch/arm/mach-at91
        arm: at91: move platfarm_data to include/linux/platform_data/atmel.h
        arm: at91: drop machine defconfig
        ARM: OMAP: Remove NEED_MACH_GPIO_H
        ARM: OMAP: Remove unnecessary mach and plat includes
        ...
      8287361a
    • L
      Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2989950c
      Linus Torvalds 提交于
      Pull ARM SoC Non-critical bug fixes from Olof Johansson:
       "Simple bug fixes that were not considered important enough for
        inclusion into 3.7, especially those that arrived late during the
        merge window.
      
        There's also a MAINTAINERS update for the Renesas platforms in here,
        marking Simon Horman as a maintainer and changing the git url to his
        tree."
      
      * tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        Update ARM/SHMOBILE section of MAINTAINERS
        ARM: Fix Kconfig symbols typo for LEDS
        ARM: pxa: add dummy SA1100 rtc clock in pxa25x
        ARM: pxa: fix pxa25x gpio wakeup setting
        ARM: OMAP4: PM: fix errata handling when CONFIG_PM=n
        ARM: cns3xxx: drop unnecessary symbol selection
        ARM: vexpress: fix ll debug code when building multiplatform
        ARM: OMAP4: retrigger localtimers after re-enabling gic
        ARM: OMAP4460: Workaround for ROM bug because of CA9 r2pX GIC control register change.
        ARM: OMAP4: PM: add errata support
        ARM: davinci: fix return value check by using IS_ERR in tnetv107x_devices_init()
        ARM: davinci: uncompress.h: bail out if uart not initialized
        ARM: davinci: serial.h: fix uart number in the comment
        ARM: davinci: dm644x evm: move pointer dereference below NULL check
        ARM: vexpress: Make the debug UART detection more specific
      2989950c
    • L
      Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm · b1286f4e
      Linus Torvalds 提交于
      Pull ARM updates from Russell King:
       "Here's the updates for ARM for this merge window, which cover quite a
        variety of areas.
      
        There's a bunch of patch series from Will tackling various bugs like
        the PROT_NONE handling, ASID allocation, cluster boot protocol and
        ASID TLB tagging updates.
      
        We move to a build-time sorted exception table rather than doing the
        sorting at run-time, add support for the secure computing filter, and
        some updates to the perf code.  We also have sorted out the placement
        of some headers, fixed some build warnings, fixed some hotplug
        problems with the per-cpu TWD code."
      
      * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (73 commits)
        ARM: 7594/1: Add .smp entry for REALVIEW_EB
        ARM: 7599/1: head: Remove boot-time HYP mode check for v5 and below
        ARM: 7598/1: net: bpf_jit_32: fix sp-relative load/stores offsets.
        ARM: 7595/1: syscall: rework ordering in syscall_trace_exit
        ARM: 7596/1: mmci: replace readsl/writesl with ioread32_rep/iowrite32_rep
        ARM: 7597/1: net: bpf_jit_32: fix kzalloc gfp/size mismatch.
        ARM: 7593/1: nommu: do not enable DCACHE_WORD_ACCESS when !CONFIG_MMU
        ARM: 7592/1: nommu: prevent generation of kernel unaligned memory accesses
        ARM: 7591/1: nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6
        ARM: 7590/1: /proc/interrupts: limit the display of IPIs to online CPUs only
        ARM: 7587/1: implement optimized percpu variable access
        ARM: 7589/1: integrator: pass the lm resource to amba
        ARM: 7588/1: amba: create a resource parent registrator
        ARM: 7582/2: rename kvm_seq to vmalloc_seq so to avoid confusion with KVM
        ARM: 7585/1: kernel: fix nr_cpu_ids check in DT logical map init
        ARM: 7584/1: perf: fix link error when CONFIG_HW_PERF_EVENTS is not selected
        ARM: gic: use a private mapping for CPU target interfaces
        ARM: kernel: add logical mappings look-up
        ARM: kernel: add cpu logical map DT init in setup_arch
        ARM: kernel: add device tree init map function
        ...
      b1286f4e
    • Y
      net/mlx4_en: Add support for destination MAC in steering rules · 520dfe3a
      Yan Burman 提交于
      Implement destination MAC rule extension for L3/L4 rules in
      flow steering. Usefull for vSwitch/macvlan configurations.
      Signed-off-by: NYan Burman <yanb@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      520dfe3a
    • Y
      net/mlx4_en: Use generic etherdevice.h functions. · c402b947
      Yan Burman 提交于
      Get rid of full_mac, zero_mac in favour of
      is_zero_ether_addr and is_broadcast_ether_addr.
      Signed-off-by: NYan Burman <yanb@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c402b947
    • Y
      net: ethtool: Add destination MAC address to flow steering API · d4676eac
      Yan Burman 提交于
      Add ability to specify destination MAC address for L3/L4 flow spec
      in order to be able to specify action for different VM's under vSwitch
      configuration. This change is transparent to older userspace.
      Signed-off-by: NYan Burman <yanb@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d4676eac
    • C
      bridge: add support of adding and deleting mdb entries · cfd56754
      Cong Wang 提交于
      This patch implents adding/deleting mdb entries via netlink.
      Currently all entries are temp, we probably need a flag to distinguish
      permanent entries too.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Graf <tgraf@suug.ch>
      Signed-off-by: NCong Wang <amwang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cfd56754
    • C
      bridge: notify mdb changes via netlink · 37a393bc
      Cong Wang 提交于
      As Stephen mentioned, we need to monitor the mdb
      changes in user-space, so add notifications via netlink too.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Thomas Graf <tgraf@suug.ch>
      Signed-off-by: NCong Wang <amwang@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      37a393bc
    • Y
      ndisc: Unexport ndisc_{build,send}_skb(). · fd0ea7db
      YOSHIFUJI Hideaki 提交于
      These symbols were exported for bonding device by commit 305d552a
      ("bonding: send IPv6 neighbor advertisement on failover").
      
      It bacame obsolete by commit 7c899432 ("bonding, ipv4, ipv6, vlan: Handle
      NETDEV_BONDING_FAILOVER like NETDEV_NOTIFY_PEERS") and removed by
      commit 4f5762ec ("bonding: Remove obsolete source file 'bond_ipv6.c'").
      Signed-off-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd0ea7db
    • S
      uapi: add missing netconf.h to export list · 895464fa
      stephen hemminger 提交于
      Add netconf.h for use by iproute2.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Acked-by: NNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      895464fa
    • L
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 6facac1a
      Linus Torvalds 提交于
      Pull CIFS fixes from Steve French:
       "This includes a set of misc.  cifs fixes (most importantly some byte
        range lock related write fixes from Pavel, and some ACL and idmap
        related fixes from Jeff) but also includes the SMB2.02 dialect
        enablement, and a key fix for SMB3 mounts.
      
        Default authentication upgraded to ntlmv2 for cifs (it was already
        ntlmv2 for smb2)"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (43 commits)
        CIFS: Fix write after setting a read lock for read oplock files
        cifs: parse the device name into UNC and prepath
        cifs: fix up handling of prefixpath= option
        cifs: clean up handling of unc= option
        cifs: fix SID binary to string conversion
        fix "disabling echoes and oplocks" on SMB2 mounts
        Do not send SMB2 signatures for SMB3 frames
        cifs: deal with id_to_sid embedded sid reply corner case
        cifs: fix hardcoded default security descriptor length
        cifs: extra sanity checking for cifs.idmap keys
        cifs: avoid extra allocation for small cifs.idmap keys
        cifs: simplify id_to_sid and sid_to_id mapping code
        CIFS: Fix possible data coherency problem after oplock break to None
        CIFS: Do not permit write to a range mandatory locked with a read lock
        cifs: rename cifs_readdir_lookup to cifs_prime_dcache and make it void return
        cifs: Add CONFIG_CIFS_DEBUG and rename use of CIFS_DEBUG
        cifs: Make CIFS_DEBUG possible to undefine
        SMB3 mounts fail with access denied to some servers
        cifs: Remove unused cEVENT macro
        cifs: always zero out smb_vol before parsing options
        ...
      6facac1a
    • L
      Merge tag 'for-linus-v3.8-rc1' of git://oss.sgi.com/xfs/xfs · 3f1c64f4
      Linus Torvalds 提交于
      Pull xfs update from Ben Myers:
       "There is plenty going on, including the cleanup of xfssyncd, metadata
        verifiers, CRC infrastructure for the log, tracking of inodes with
        speculative allocation, a cleanup of xfs_fs_subr.c, fixes for
        XFS_IOC_ZERO_RANGE, and important fix related to log replay (only
        update the last_sync_lsn when a transaction completes), a fix for
        deadlock on AGF buffers, documentation and comment updates, and a few
        more cleanups and fixes.
      
        Details:
         - remove the xfssyncd mess
         - only update the last_sync_lsn when a transaction completes
         - zero allocation_args on the kernel stack
         - fix AGF/alloc workqueue deadlock
         - silence uninitialised f.file warning
         - Update inode alloc comments
         - Update mount options documentation
         - report projid32bit feature in geometry call
         - speculative preallocation inode tracking
         - fix attr tree double split corruption
         - fix broken error handling in xfs_vm_writepage
         - drop buffer io reference when a bad bio is built
         - add more attribute tree trace points
         - growfs infrastructure changes for 3.8
         - fs/xfs/xfs_fs_subr.c die die die
         - add CRC infrastructure
         - add CRC checks to the log
         - Remove description of nodelaylog mount option from xfs.txt
         - inode allocation should use unmapped buffers
         - byte range granularity for XFS_IOC_ZERO_RANGE
         - fix direct IO nested transaction deadlock
         - fix stray dquot unlock when reclaiming dquots
         - fix sparse reported log CRC endian issue"
      
      Fix up trivial conflict in fs/xfs/xfs_fsops.c due to the same patch
      having been applied twice (commits eaef8543 and 1375cb65: "xfs:
      growfs: don't read garbage for new secondary superblocks") with later
      updates to the affected code in the XFS tree.
      
      * tag 'for-linus-v3.8-rc1' of git://oss.sgi.com/xfs/xfs: (78 commits)
        xfs: fix sparse reported log CRC endian issue
        xfs: fix stray dquot unlock when reclaiming dquots
        xfs: fix direct IO nested transaction deadlock.
        xfs: byte range granularity for XFS_IOC_ZERO_RANGE
        xfs: inode allocation should use unmapped buffers.
        xfs: Remove the description of nodelaylog mount option from xfs.txt
        xfs: add CRC checks to the log
        xfs: add CRC infrastructure
        xfs: convert buffer verifiers to an ops structure.
        xfs: connect up write verifiers to new buffers
        xfs: add pre-write metadata buffer verifier callbacks
        xfs: add buffer pre-write callback
        xfs: Add verifiers to dir2 data readahead.
        xfs: add xfs_da_node verification
        xfs: factor and verify attr leaf reads
        xfs: factor dir2 leaf read
        xfs: factor out dir2 data block reading
        xfs: factor dir2 free block reading
        xfs: verify dir2 block format buffers
        xfs: factor dir2 block read operations
        ...
      3f1c64f4
    • L
      Merge tag 'dlm-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 22a40fd9
      Linus Torvalds 提交于
      Pull dlm updates from David Teigland:
       "This set fixes some conditions in which value blocks are invalidated,
        and includes two trivial cleanups."
      
      * tag 'dlm-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: fix lvb invalidation conditions
        fs/dlm: remove CONFIG_EXPERIMENTAL
        dlm: remove unused variable in *dlm_lowcomms_get_buffer()
      22a40fd9
    • L
      Merge branch 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · d206e090
      Linus Torvalds 提交于
      Pull cgroup changes from Tejun Heo:
       "A lot of activities on cgroup side.  The big changes are focused on
        making cgroup hierarchy handling saner.
      
         - cgroup_rmdir() had peculiar semantics - it allowed cgroup
           destruction to be vetoed by individual controllers and tried to
           drain refcnt synchronously.  The vetoing never worked properly and
           caused good deal of contortions in cgroup.  memcg was the last
           reamining user.  Michal Hocko removed the usage and cgroup_rmdir()
           path has been simplified significantly.  This was done in a
           separate branch so that the memcg people can base further memcg
           changes on top.
      
         - The above allowed cleaning up cgroup lifecycle management and
           implementation of generic cgroup iterators which are used to
           improve hierarchy support.
      
         - cgroup_freezer updated to allow migration in and out of a frozen
           cgroup and handle hierarchy.  If a cgroup is frozen, all descendant
           cgroups are frozen.
      
         - netcls_cgroup and netprio_cgroup updated to handle hierarchy
           properly.
      
         - Various fixes and cleanups.
      
         - Two merge commits.  One to pull in memcg and rmdir cleanups (needed
           to build iterators).  The other pulled in cgroup/for-3.7-fixes for
           device_cgroup fixes so that further device_cgroup patches can be
           stacked on top."
      
      Fixed up a trivial conflict in mm/memcontrol.c as per Tejun (due to
      commit bea8c150 ("memcg: fix hotplugged memory zone oops") in master
      touching code close to commit 2ef37d3f ("memcg: Simplify
      mem_cgroup_force_empty_list error handling") in for-3.8)
      
      * 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (65 commits)
        cgroup: update Documentation/cgroups/00-INDEX
        cgroup_rm_file: don't delete the uncreated files
        cgroup: remove subsystem files when remounting cgroup
        cgroup: use cgroup_addrm_files() in cgroup_clear_directory()
        cgroup: warn about broken hierarchies only after css_online
        cgroup: list_del_init() on removed events
        cgroup: fix lockdep warning for event_control
        cgroup: move list add after list head initilization
        netprio_cgroup: allow nesting and inherit config on cgroup creation
        netprio_cgroup: implement netprio[_set]_prio() helpers
        netprio_cgroup: use cgroup->id instead of cgroup_netprio_state->prioidx
        netprio_cgroup: reimplement priomap expansion
        netprio_cgroup: shorten variable names in extend_netdev_table()
        netprio_cgroup: simplify write_priomap()
        netcls_cgroup: move config inheritance to ->css_online() and remove .broken_hierarchy marking
        cgroup: remove obsolete guarantee from cgroup_task_migrate.
        cgroup: add cgroup->id
        cgroup, cpuset: remove cgroup_subsys->post_clone()
        cgroup: s/CGRP_CLONE_CHILDREN/CGRP_CPUSET_CLONE_CHILDREN/
        cgroup: rename ->create/post_create/pre_destroy/destroy() to ->css_alloc/online/offline/free()
        ...
      d206e090
    • L
      Merge branch 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · fef3ff2e
      Linus Torvalds 提交于
      Pull percpu changes from Tejun Heo:
       "Nothing exciting here either.  Joonsoo's is almost cosmetic.  Cyrill's
        patch fixes "percpu_alloc" early kernel param handling so that the
        kernel doesn't crash when the parameter is specified w/o any argument."
      
      * 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        mm, percpu: Make sure percpu_alloc early parameter has an argument
        percpu: make pcpu_free_chunk() use pcpu_mem_free() instead of kfree()
      fef3ff2e
    • L
      Merge branch 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · e7b55b8f
      Linus Torvalds 提交于
      Pull workqueue changes from Tejun Heo:
       "Nothing exciting.  Just two trivial changes."
      
      * 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: add WARN_ON_ONCE() on CPU number to wq_worker_waking_up()
        workqueue: trivial fix for return statement in work_busy()
      e7b55b8f
  3. 12 12月, 2012 16 次提交
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 50851c62
      Linus Torvalds 提交于
      Pull thermal management update from Zhang Rui:
       "Highlights:
      
         - Introduction of thermal policy support, together with three new
           thermal governors, including step_wise, user_space, fire_share.
      
         - Introduction of ST-Ericsson db8500_thermal driver and ST-Ericsson
           db8500_cpufreq_cooling driver.
      
         - Thermal Kconfig file and Makefile refactor.
      
         - Fixes for generic thermal layer, generic cpucooling, rcar thermal
           driver and Exynos thermal driver."
      
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (36 commits)
        Thermal: Fix DEFAULT_THERMAL_GOVERNOR
        Thermal: fix a NULL pointer dereference when generic thermal layer is built as a module
        thermal: rcar: add rcar_zone_to_priv() macro
        thermal: rcar: fixup the unit of temperature
        thermal: cpu cooling: allow module builds
        thermal: cpu cooling: use const parameter while registering
        Thermal: Add ST-Ericsson DB8500 thermal properties and platform data.
        Thermal: Add ST-Ericsson DB8500 thermal driver.
        drivers/thermal/Makefile refactor
        Exynos: Add missing dependency
        Refactor drivers/thermal/Kconfig
        thermal: cpu_cooling: Make 'notify_device' static
        Thermal: Remove the cooling_cpufreq_list.
        Thermal: fix bug of counting cpu frequencies.
        Thermal: add indent for code alignment.
        thermal: rcar_thermal: remove explicitly used devm_kfree/iounap()
        thermal: user_space: Add missing static storage class specifiers
        thermal: fair_share: Add missing static storage class specifiers
        thermal: step_wise: Add missing static storage class specifiers
        Thermal: Fix oops and unlocking in thermal_sys.c
        ...
      50851c62
    • L
      Merge tag 'regmap-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 99b8f42e
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "Quite a few enhancements this time around, helpers and diagnostics for
        the most part which is good to see:
      
         - Addition of table based lookups for the register access checks from
           Davide Ciminaghi, making life easier for drivers with big blocks of
           similar registers.
         - Allow drivers to get the irqdomain for regmap irq_chips, allowing
           the domain to be used with other APIs.
         - Debug improvements for paged register maps.
         - Performance improvments for some of the diagnostic infrastructure,
           very helpful for devices with large register maps."
      
      * tag 'regmap-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: debugfs: Cache offsets of valid regions for dump
        regmap: debugfs: Factor out initial seek
        regmap: debugfs: Avoid overflows for very small reads
        regmap: Cache register and value sizes for debugfs
        regmap: introduce tables for readable/writeable/volatile/precious checks
        regmap: core: Report registers in hex when we can't cache
        regmap: Fix printing of size_t variable
        regmap: make lock/unlock functions customizable
        regmap: silence GCC warning
        regmap: Split raw writes that cross window boundaries
        regmap: Make return code checks consistent
        regmap: Factor range lookup out of page selection
        regmap: Provide debugfs read of register ranges
        regmap: Factor out debugfs register read
        regmap: Allow ranges to be named
        regmap: When we sanity check during range adds say what errors we find
        regmap: Rename n_ranges to num_ranges
        regmap: irq: Allow users to retrieve the irq_domain
      99b8f42e
    • L
      Merge tag 'please-pull-einj-fix-for-acpi5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 139353ff
      Linus Torvalds 提交于
      Pull ACPI5 error injection fix from Tony Luck:
       "Trivial fix for error injection code using ACPI5 version of EINJ"
      
      * tag 'please-pull-einj-fix-for-acpi5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        ACPI, APEI, EINJ: Add missed ACPI5 support for error trigger table
      139353ff
    • L
      Merge tag 'please-pull-pstore_mevent' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 251a8cfe
      Linus Torvalds 提交于
      Pull pstore fixes from Tony Luck:
       "Patch series to allow EFI variable backend to pstore to hold multiple
        records."
      
      * tag 'please-pull-pstore_mevent' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        efi_pstore: Add a format check for an existing variable name at erasing time
        efi_pstore: Add a format check for an existing variable name at reading time
        efi_pstore: Add a sequence counter to a variable name
        efi_pstore: Add ctime to argument of erase callback
        efi_pstore: Remove a logic erasing entries from a write callback to hold multiple logs
        efi_pstore: Add a logic erasing entries to an erase callback
        efi_pstore: Check remaining space with QueryVariableInfo() before writing data
      251a8cfe
    • L
      Merge tag 'please-pull-misc-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 70f2836d
      Linus Torvalds 提交于
      Pull ia64 fix from Tony Luck:
       "Miscellaneous ia64 fix for 3.8.  Just need to avoid a pending
        namespace collision from other work being merged."
      
      * tag 'please-pull-misc-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Resolve name space collision for cache_show()
      70f2836d
    • L
      Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 · 97ebe8f5
      Linus Torvalds 提交于
      Pull ARM64 updates from Catalin Marinas:
      
       - Generic execve, kernel_thread, fork/vfork/clone.
      
       - Preparatory patches for KVM support (initialising EL2 mode for later
         installing KVM support, hypervisor stub).
      
       - Signal handling corner case fix (alternative signal stack set up for
         a SEGV handler, which is raised in response to RLIMIT_STACK being
         reached).
      
       - Sub-nanosecond timer error fix.
      
      * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (30 commits)
        arm64: Update the MAINTAINERS entry
        arm64: compat for clock_adjtime(2) is miswired
        arm64: move FP-SIMD save/restore code to a macro
        arm64: hyp: initialize vttbr_el2 to zero
        arm64: add hypervisor stub
        arm64: record boot mode when entering the kernel
        arm64: move vector entry macro to assembler.h
        arm64: add AArch32 execution modes to ptrace.h
        arm64: expand register mapping between AArch32 and AArch64
        arm64: generic timer: use virtual counter instead of physical at EL0
        arm64: vdso: defer shifting of nanosecond component of timespec
        arm64: vdso: rework __do_get_tspec register allocation and return shift
        arm64: vdso: check sequence counter even for coarse realtime operations
        arm64: vdso: fix clocksource mask when extracting bottom 56 bits
        ARM64: Remove incorrect Kconfig symbol HAVE_SPARSE_IRQ
        Documentation: Fixes a word in Documentation/arm64/memory.txt
        arm64: Make !dirty ptes read-only
        arm64: Convert empty flush_cache_{mm,page} functions to static inline
        arm64: signal: let the compiler inline compat_get_sigframe
        arm64: signal: return struct rt_sigframe from get_sigframe
        ...
      
      Conflicts:
      	arch/arm64/include/asm/unistd32.h
      97ebe8f5
    • D
      MN10300: Use asm-generic/pci_iomap.h · 76583cff
      David Howells 提交于
      The declarations from MN10300's pci_iomap() was removed by commit
      34f1bdee but asm-generic/pci_iomap.h wasn't
      then #included from asm/io.h.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      76583cff
    • D
      MN10300: Get rid of unused variable from ASB2305 PCI code · 0c6e686c
      David Howells 提交于
      Get rid of an unused variable in pcibios_fixup_device_resources() which leads
      to the following warning:
      
      arch/mn10300/unit-asb2305/pci.c: In function 'pcibios_fixup_device_resources':
      arch/mn10300/unit-asb2305/pci.c:324:24: warning: unused variable 'region' [-Wunused-variable]
      
      Whilst we're at it, merge the two integer variable declarations into one line.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      0c6e686c
    • D
      MN10300: ASB2305 PCI code needs linux/irq.h · 00a2f915
      David Howells 提交于
      ASB2305 PCI code needs to #include linux/irq.h for XIRQ1 so that it can set
      the CPU interrupt priority level on the PCI interrupt.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      00a2f915
    • K
      mn10300/mm/fault.c: Port OOM changes to do_page_fault · 3d7b6a67
      Kautuk Consul 提交于
      Commit d065bd81
      (mm: retry page fault when blocking on disk transfer) and
      commit 37b23e05
      (x86,mm: make pagefault killable)
      
      The above commits introduced changes into the x86 pagefault handler
      for making the page fault handler retryable as well as killable.
      
      These changes reduce the mmap_sem hold time, which is crucial
      during OOM killer invocation.
      
      Port these changes to mn10300.
      Signed-off-by: NKautuk Consul <consul.kautuk@gmail.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      3d7b6a67
    • D
      MN10300: Handle cacheable PCI regions in pci_iomap() · 83c2dc15
      David Howells 提交于
      Handle cacheable PCI regions in pci_iomap().  If IORESOURCE_CACHEABLE is set
      then we AND away the 0x20000000 "flag".
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      83c2dc15
    • M
      MN10300: fix debug polling in ttySM driver · 0369c360
      Mark Salter 提交于
      The debug polling interface for the SoC serial ports did not work in the case
      where the serial ports were not also used as a console. In that case, the
      uart driver startup function will not be called so tx and rx would not be
      enabled in the hardware control register. Also, vdma interrupts would not be
      enabled which the poll_get_char function relied on. This patch makes sure that
      the rx and tx enables are set as a consequence of the uart set_termios call
      which is the only initialization done for the debug polling interface. Also,
      the poll_get_char now handles the case where vdma interrupts are not enabled.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      0369c360
    • M
      MN10300: ttySM: clean up unnecessary casting · 97a70b14
      Mark Salter 提交于
      The ttySM uart data register pointers are declared as void* pointers. Change
      them to u8* pointers so we don't need to use casts in the code.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      97a70b14
    • M
      MN10300: fix SMP synchronization between txdma and serial driver · 8f0bcbca
      Mark Salter 提交于
      The SoC serial port driver uses a high priority interrupt to handle tx of
      characters in the tx ring buffer. The driver needs to disable/enable this IRQ
      from outside of irq context. The original code to do this is not foolproof on
      SMP machines because the IRQ running on one core could still access the serial
      port for a short time after the driver running on another core disables the
      interrupt. This patch adds a flag to tell the IRQ handler that the driver
      wants to disable the interrupt. After seeing the flag, the IRQ handler will
      immediately disable the interrupt and exit. After setting the flag, the driver
      will wait for interrupt to be disabled by the IRQ handler.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      8f0bcbca
    • M
      MN10300: fix serial port vdma irq setup for SMP · 8d160027
      Mark Salter 提交于
      The builtin SoC serial ports have no FIFOs and use a virtual DMA mechanism
      based on high priority IRQs to avoid overruns. These high priority interrupts
      are pinned to cpu#0 on SMP systems. This patch fixes a problem with SMP where
      the set_intr_level() interface is used to set the priority for these IRQs. The
      set_intr_level() function sets priority on the local cpu but on SMP systems,
      this code may be run on some other cpu than the one handling the interrupts.
      Instead of setting interrupt level explicitly, this patch uses a special
      irq_chip for these interrupts so that the mask/unmask methods can set the
      interrupt level implicitly.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      8d160027
    • M
      MN10300: cleanup IRQ affinity setting · 7d361cb7
      Mark Salter 提交于
      The irq_set_affinity handler for the mn10300 cpu pic had some hard-coded IRQs
      which were not to be migrated from one cpu to another. This patch cleans those
      up by using a combination of IRQF_NOBALANCING and specialized irq chips with
      no irq_set_affinity handler. This maintains the previous behavior by using
      generic IRQ interfaces rather than hard coding IRQ numbers in the default
      irq_set_affinity handler.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      7d361cb7