16 May, 2012

5 commits

  • Due to an errata, the PA7300LC generates a TLB miss interruption even on the
    prefetch instruction. This means that prefetch(NULL), which is supposed to be
    a nop on linux actually generates a NULL deref fault. Fix this by testing the
    address of prefetch against NULL before doing the prefetch.

    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley

    James Bottomley
     
  • As pointed out by serveral people, PA1.1 only has a type 26 instruction
    meaning that the space register must be explicitly encoded. Not giving an
    explicit space means that the compiler uses the type 24 version which is PA2.0
    only resulting in an illegal instruction crash.

    This regression was caused by

    commit f311847c2fcebd81912e2f0caf8a461dec28db41
    Author: James Bottomley
    Date: Wed Dec 22 10:22:11 2010 -0600

    parisc: flush pages through tmpalias space

    Reported-by: Helge Deller
    Signed-off-by: John David Anglin
    Cc: stable@vger.kernel.org #2.6.39+
    Signed-off-by: James Bottomley

    John David Anglin
     
  • All PA1.1 systems have been oopsing on boot since

    commit f311847c2fcebd81912e2f0caf8a461dec28db41
    Author: James Bottomley
    Date: Wed Dec 22 10:22:11 2010 -0600

    parisc: flush pages through tmpalias space

    because a PA2.0 instruction was accidentally introduced into the PA1.1 TLB
    insertion interruption path when it was consolidated with the do_alias macro.
    Fix the do_alias macro only to use PA2.0 instructions if compiled for 64 bit.
    Cc: stable@vger.kernel.org #2.6.39+
    Signed-off-by: James Bottomley

    James Bottomley
     
  • The scheduler depends on receiving the CPU_STARTING notification, without
    which we end up into a lot of trouble. So add the missing call to
    notify_cpu_starting() in the bringup code.

    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Linus Torvalds

    Srivatsa S. Bhat
     
  • The scheduler depends on receiving the CPU_STARTING notification, without
    which we end up into a lot of trouble. So add the missing call to
    notify_cpu_starting() in the bringup code.

    Signed-off-by: Srivatsa S. Bhat
    Acked-and-Tested-by: Mikulas Patocka
    Acked-and-Tested-by: Tobias Ulmer
    Tested-by: John David Anglin
    Signed-off-by: Linus Torvalds

    Srivatsa S. Bhat
     

15 May, 2012

4 commits

  • Export handle_edge_irq() and irq_to_desc() to modules to allow them to
    do things such as

    __irq_set_handler_locked(...., handle_edge_irq);

    This fixes

    ERROR: "handle_edge_irq" [drivers/gpio/gpio-pch.ko] undefined!
    ERROR: "irq_to_desc" [drivers/gpio/gpio-pch.ko] undefined!

    when gpio-pch is being built as a module.

    This was introduced by commit df9541a60af0 ("gpio: pch9: Use proper flow
    type handlers") that added

    __irq_set_handler_locked(d->irq, handle_edge_irq);

    but handle_edge_irq() was not exported for modules (and inlined
    __irq_set_handler_locked() requires irq_to_desc() exported as well)

    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     
  • Pull media fixes from Mauro Carvalho Chehab:
    "For a some fix patches for v3.4, including a regression fix at DVB core"

    Fix up trivial conflicts in Documentation/feature-removal-schedule.txt

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] gspca - sonixj: Fix a zero divide in isoc interrupt
    [media] media: videobuf2-dma-contig: include header for exported symbols
    [media] media: videobuf2-dma-contig: quiet sparse noise about plain integer as NULL pointer
    [media] media: vb2-memops: Export vb2_get_vma symbol
    [media] s5p-fimc: Correct memory allocation for VIDIOC_CREATE_BUFS
    [media] s5p-fimc: Fix locking in subdev set_crop op
    [media] dvb_frontend: fix a regression with DVB-S zig-zag
    [media] fintek-cir: change || to &&
    [media] V4L: Schedule V4L2_CID_HCENTER, V4L2_CID_VCENTER controls for removal
    [media] rc: Postpone ISR registration
    [media] marvell-cam: fix an ARM build error
    [media] V4L: soc-camera: protect hosts during probing from overzealous user-space

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "The main purpose of this pull request is to fix up the erroneous
    bonding patch I applied last round. I meant to apply v4 of the patch
    from Jiri but I applied v3 by accident. Mea culpa.

    Also, eagle eyed Dan Carpenter noticed that openvswitch has one of
    those "X = alloc(); if (!Y)" mistakes, test the proper pointer
    instead."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    openvswitch: checking wrong variable in queue_userspace_packet()
    bonding: Fix LACPDU rx_dropped commit.

    Linus Torvalds
     
  • 3.4-rc introduced a regression when setting the LEDS. We do the right thing
    but then return an error code.

    Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43144
    Reported-by: Christian Casteyde
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     

14 May, 2012

3 commits

  • "skb" is non-NULL here, for example we dereference it in skb_clone().
    The intent was to test "nskb" which was just set.

    Signed-off-by: Dan Carpenter
    Acked-by: Jesse Gross
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • I applied the wrong version of Jiri's bonding fix in commit
    13a8e0c8cdb43982372bd6c65fb26839c8fd8ce9 ("bonding: don't increase
    rx_dropped after processing LACPDUs")

    I applied v3, which introduces warnings I asked him to fix,
    instead of v4 which properly takes care of those issues.

    This inter-diffs such that the warnings are now gone.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull three MTD fixes from David Woodhouse:
    - Fix a lock ordering deadlock in JFFS2
    - Fix an oops in the dataflash driver, triggered by a dummy call to test
    whether it has OTP functionality.
    - Fix request_mem_region() failure on amsdelta NAND driver.

    * tag 'for-linus-3.4-20120513' of git://git.infradead.org/linux-mtd:
    mtd: ams-delta: fix request_mem_region() failure
    jffs2: Fix lock acquisition order bug in gc path
    mtd: fix oops in dataflash driver

    Linus Torvalds
     

13 May, 2012

16 commits

  • .. and this should hopefully be the last -rc before final 3.4 release.

    Linus Torvalds
     
  • Pull ARM: SoC fixes from Olof Johansson:
    "I was hoping to be done with fixes for 3.4 but we got two branches
    from subarch maintainers the last couple of days. So here is one
    last(?) pull request for arm-soc containing 7 patches:

    - Five of them are for shmobile dealing with SMP setup and compile
    failures
    - The remaining two are for regressions on the Samsung platforms"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1
    ARM: EXYNOS: use s5p-timer for UniversalC210 board
    ARM / mach-shmobile: Invalidate caches when booting secondary cores
    ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix
    ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix
    ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
    ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper

    Linus Torvalds
     
  • Pull a few more GPIO bug fixes from Grant Likely:
    "Oops, missed a couple. Here's an updated pull req for GPIO"

    A set of PCH bug fixes, and one patch to fix up compile warnings

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    gpio/exynos: Fix compiler warnings when non-exynos machines are selected
    gpio: pch9: Use proper flow type handlers

    Linus Torvalds
     
  • …/git/kgene/linux-samsung into fixes

    * 'v3.4-samsung-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
    ARM: EXYNOS: fix ctrlbit for exynos5_clk_pdma1
    ARM: EXYNOS: use s5p-timer for UniversalC210 board

    Olof Johansson
     
  • It should be (1 << 2) for ctrlbit of exynos5_clk_pdma1.

    Signed-off-by: Kukjin Kim

    Kukjin Kim
     
  • Commit 069d4e743 ("ARM: EXYNOS4: Remove clock event timers using
    ARM private timers") removed support for local timers and forced
    to use MCT as event source. However MCT is not operating properly
    on early revision of EXYNOS4 SoCs. All UniversalC210 boards are
    based on it, so that commit broke support for it. This patch
    provides a workaround that enables UniversalC210 boards to boot
    again. s5p-timer is used as an event source, it works only for
    non-SMP builds.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Signed-off-by: Kukjin Kim

    Marek Szyprowski
     
  • By Guennadi Liakhovetski (2) and others via Rafael J. Wysocki:
    "[...] urgent fixes for Renesas ARM-based platforms. Four of these
    commits are fixes of regressions new in 3.4-rc and the last one is
    necessary for SMP to work on those systems in general."

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas:
    ARM / mach-shmobile: Invalidate caches when booting secondary cores
    ARM / mach-shmobile: sh73a0 SMP TWD boot regression fix
    ARM / mach-shmobile: r8a7779 SMP TWD boot regression fix
    ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
    ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper

    Olof Johansson
     
  • Make sure L1 caches are invalidated when booting secondary
    cores. Needed to boot all mach-shmobile SMP systems that
    are using Cortex-A9 including sh73a0, r8a7779 and EMEV2.

    Thanks to imx and tegra guys for actual code.

    Signed-off-by: Magnus Damm
    Tested-by: Kuninori Morimoto
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     
  • Fix SMP TWD boot regression on sh73a0 based platforms caused by:

    4200b16 ARM: shmobile: convert to twd_local_timer_register() interface

    After the merge of the above commit it has been impossible to boot
    sh73a0 based SoCs with SMP enabled and CONFIG_HAVE_ARM_TWD=y. The
    kernel crashes at smp_init_cpus() timing which is before the console
    has been initialized, so to the user this looks like a kernel lock up
    without any particular error message.

    This patch fixes the regression on sh73a0 by moving the TWD
    registration code from smp_init_cpus() to sys_timer->init() time.

    This patch removed shmobile_twd_init() which is no longer needed

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Kuninori Morimoto
     
  • Fix SMP TWD boot regression on r8a7779 based platforms caused by:

    4200b16 ARM: shmobile: convert to twd_local_timer_register() interface

    After the merge of the above commit it has been impossible to boot
    r8a7779 based SoCs with SMP enabled and CONFIG_HAVE_ARM_TWD=y. The
    kernel crashes at smp_init_cpus() timing which is before the console
    has been initialized, so to the user this looks like a kernel lock up
    without any particular error message.

    This patch fixes the regression on r8a7779 by moving the TWD
    registration code from smp_init_cpus() to sys_timer->init() time.

    Signed-off-by: Magnus Damm
    Acked-by: Marc Zyngier
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     
  • This also fixes the following modular mmc build failure:

    arch/arm/mach-shmobile/built-in.o: In function `mackerel_sdhi0_gpio_cd':
    pfc-sh7372.c:(.text+0x1138): undefined reference to `mmc_detect_change'

    on this platform by eliminating the use of an inline function, which
    calls into the mmc core.

    Signed-off-by: Guennadi Liakhovetski
    Reviewed-by: Simon Horman
    Acked-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Guennadi Liakhovetski
     
  • This also fixes the following modular mmc build failure:

    arch/arm/mach-shmobile/built-in.o: In function `ag5evm_sdhi0_gpio_cd':
    pfc-sh73a0.c:(.text+0x7c0): undefined reference to `mmc_detect_change'

    on this platform by eliminating the use of an inline function, which
    calls into the mmc core.

    Signed-off-by: Guennadi Liakhovetski
    Tested-by: Simon Horman
    Acked-by: Magnus Damm
    Signed-off-by: Rafael J. Wysocki

    Guennadi Liakhovetski
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of minor qla and virto fixes plus one major regression
    fix (oops in all legacy host drivers)."

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    [SCSI] virtio_scsi: fix TMF use-after-free
    [SCSI] fix oops in all legacy host adapters caused by 6f381fa
    [SCSI] qla2xxx: Update version number to 8.04.00.03-k.
    [SCSI] qla2xxx: Properly check for current state after the fabric-login request.
    [SCSI] qla2xxx: Proper completion to scsi-ml for scsi status task_set_full and busy.
    [SCSI] qla2xxx: Block flash access from application when device is initialized for ISP82xx.
    [SCSI] qla2xxx: Fix reset time out as qla2xxx not ack to reset request.

    Linus Torvalds
     
  • Pull networking fixes from David S. Miller:

    1) Since we do RCU lookups on ipv4 FIB entries, we have to test if the
    entry is dead before returning it to our caller.

    2) openvswitch locking and packet validation fixes from Ansis Atteka,
    Jesse Gross, and Pravin B Shelar.

    3) Fix PM resume locking in IGB driver, from Benjamin Poirier.

    4) Fix VLAN header handling in vhost-net and macvtap, from Basil Gor.

    5) Revert a bogus network namespace isolation change that was causing
    regressions on S390 networking devices.

    6) If bonding decides to process and handle a LACPDU frame, we
    shouldn't bump the rx_dropped counter. From Jiri Bohac.

    7) Fix mis-calculation of available TX space in r8169 driver when doing
    TSO, which can lead to crashes and/or hung device. From Julien
    Ducourthial.

    8) SCTP does not validate cached routes properly in all cases, from
    Nicolas Dichtel.

    9) Link status interrupt needs to be handled in ks8851 driver, from
    Stephen Boyd.

    10) Use capable(), not cap_raised(), in connector/userns netlink code.
    From Eric W. Biederman via Andrew Morton.

    11) Fix pktgen OOPS on module unload, from Eric Dumazet.

    12) iwlwifi under-estimates SKB truesizes, also from Eric Dumazet.

    13) Cure division by zero in SFC driver, from Ben Hutchings.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
    ks8851: Update link status during link change interrupt
    macvtap: restore vlan header on user read
    vhost-net: fix handle_rx buffer size
    bonding: don't increase rx_dropped after processing LACPDUs
    connector/userns: replace netlink uses of cap_raised() with capable()
    sctp: check cached dst before using it
    pktgen: fix crash at module unload
    Revert "net: maintain namespace isolation between vlan and real device"
    ehea: fix losing of NEQ events when one event occurred early
    igb: fix rtnl race in PM resume path
    ipv4: Do not use dead fib_info entries.
    r8169: fix unsigned int wraparound with TSO
    sfc: Fix division by zero when using one RX channel and no SR-IOV
    openvswitch: Validation of IPv6 set port action uses IPv4 header
    net: compare_ether_addr[_64bits]() has no ordering
    cdc_ether: Ignore bogus union descriptor for RNDIS devices
    bnx2x: bug fix when loading after SAN boot
    e1000: Silence sparse warnings by correcting type
    igb, ixgbe: netdev_tx_reset_queue incorrectly called from tx init path
    openvswitch: Release rtnl_lock if ovs_vport_cmd_build_info() failed.
    ...

    Linus Torvalds
     
  • Pull device-mapper fixes from Alasdair G Kergon:
    "Fix a couple of serious memory leaks in device-mapper thin
    provisioning and tidy its MODULE_DESCRIPTION.

    Mitigate occasional reported hangs associated with multipath scsi_dh
    module loading."

    * tag 'dm-3.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
    dm mpath: check if scsi_dh module already loaded before trying to load
    dm thin: correct module description
    dm thin: fix unprotected use of prepared_discards list
    dm thin: reinstate missing mempool_free in cell_release_singleton

    Linus Torvalds
     
  • Since cpufreq has no official maintainer at the moment, I'm willing
    to maintain it along some other power management core code I've been
    maintaining already.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

12 May, 2012

12 commits

  • If the requested scsi_dh module is already loaded then skip
    request_module().

    Multipath table loads can hang in an unnecessary __request_module.

    Reported-by: Ben Marzinski
    Cc: stable@kernel.org
    Signed-off-by: Mike Snitzer
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • Remove duplicate copy of string "device-mapper" (DM_NAME) from
    MODULE_DESCRIPTION.

    Signed-off-by: Alasdair G Kergon

    Alasdair G Kergon
     
  • Fix two places in commit 104655fd4dce ("dm thin: support discards") that
    didn't use pool->lock to protect against concurrent changes to the
    prepared_discards list.

    Without this fix, thin_endio() can race with process_discard(), leading
    to concurrent list_add()s that result in the processes locking up with
    an error like the following:

    WARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()
    ...
    list_add corruption. next->prev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next=ffff8801d2c485c0).
    ...
    Pid: 17205, comm: kworker/u:1 Tainted: G W O 3.4.0-rc3.snitm+ #1
    Call Trace:
    [] warn_slowpath_common+0x7f/0xc0
    [] warn_slowpath_fmt+0x46/0x50
    [] ? bio_detain+0xc6/0x210 [dm_thin_pool]
    [] __list_add+0x8f/0xa0
    [] process_discard+0x2a2/0x2d0 [dm_thin_pool]
    [] ? remap_and_issue+0x38/0x50 [dm_thin_pool]
    [] process_deferred_bios+0x7b/0x230 [dm_thin_pool]
    [] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]
    [] do_worker+0x52/0x60 [dm_thin_pool]
    [] process_one_work+0x129/0x450
    [] worker_thread+0x17c/0x3c0
    [] ? manage_workers+0x120/0x120
    [] kthread+0x9e/0xb0
    [] kernel_thread_helper+0x4/0x10
    [] ? kthread_freezable_should_stop+0x70/0x70
    [] ? gs_change+0x13/0x13
    ---[ end trace 7e0a523bc5e52692 ]---

    Signed-off-by: Mike Snitzer
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • Fix a significant memory leak inadvertently introduced during
    simplification of cell_release_singleton() in commit
    6f94a4c45a6f744383f9f695dde019998db3df55 ("dm thin: fix stacked bi_next
    usage").

    A cell's hlist_del() must be accompanied by a mempool_free().
    Use __cell_release() to do this, like before.

    Signed-off-by: Mike Snitzer
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • Fixes the following compiler warnings:

    drivers/gpio/gpio-samsung.c: In function ‘samsung_gpiolib_init’:
    drivers/gpio/gpio-samsung.c:2980:1: warning: label ‘err_ioremap1’ defined but not used [-Wunused-label]
    drivers/gpio/gpio-samsung.c:2978:1: warning: label ‘err_ioremap2’ defined but not used [-Wunused-label]
    drivers/gpio/gpio-samsung.c:2976:1: warning: label ‘err_ioremap3’ defined but not used [-Wunused-label]
    drivers/gpio/gpio-samsung.c:2974:1: warning: label ‘err_ioremap4’ defined but not used [-Wunused-label]
    drivers/gpio/gpio-samsung.c:2722:55: warning: unused variable ‘gpio_base4’ [-Wunused-variable]

    drivers/gpio/gpio-samsung.c:455:32: warning: ‘exynos_gpio_cfg’ defined but not used [-Wunused-variable]
    drivers/gpio/gpio-samsung.c:2126:33: warning: ‘exynos4_gpios_1’ defined but not used [-Wunused-variable]
    drivers/gpio/gpio-samsung.c:2228:33: warning: ‘exynos4_gpios_2’ defined but not used [-Wunused-variable]
    drivers/gpio/gpio-samsung.c:2373:33: warning: ‘exynos4_gpios_3’ defined but not used [-Wunused-variable]

    Signed-off-by: Sachin Kamat
    Signed-off-by: Grant Likely

    Sachin Kamat
     
  • Jean-Francois Dagenais reported:

    Configuring a gpio pin with the gpio-pch driver with
    "IRQF_TRIGGER_LOW | IRQF_ONESHOT" generates an interrupt storm for
    threaded ISR until the ISR thread actually gets to physically clear
    the interrupt on the triggering chip!! The immediate observable
    symptom is the high CPU usage for my ISR thread task and the
    interrupt count in /proc/interrupts incrementing radically.

    The driver is wrong in several ways:

    1) Using handle_simple_irq() does not provide proper flow control
    handling. In the case of oneshot threaded handlers for the
    demultiplexed interrupts this results in an interrupt storm because
    the simple handler does not deal with masking/unmasking. Even
    without threaded oneshot handlers an interrupt storm for level type
    interrupts can easily be triggered when the interrupt is disabled
    and the interrupt line is activated from the device.

    2) Acknowlegding the demultiplexed interrupt before calling the
    handler is wrong for level type interrupts.

    3) The set_type function unconditionally enables the interrupt. It's
    supposed to set the type and nothing else. The unmasking is done by
    the core code.

    Move the acknowledge code into a separate function and add it to the
    demux irqchip callbacks.

    Remove the unconditional enabling from the set_type() callback and set
    the proper flow handlers depending on the selected type (level/edge).

    Reported-and-tested-by: Jean-Francois Dagenais
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Grant Likely

    Thomas Gleixner
     
  • Pull GPIO omap bug fix from Grant Likely.

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    gpio/omap: fix incorrect initialization of omap_gpio_mod_init

    Linus Torvalds
     
  • Pull another powerpc irq fix from Benjamin Herrenschmidt:
    "It looks like my previous fix for the lazy irq masking problem wasn't
    quite enough. There was another problem related to performance
    monitor interrupts acting as NMIs leaving the flags in an incorrect
    state. Here's a fix that finally seems to make perf solid again."

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/irq: Fix another case of lazy IRQ state getting out of sync

    Linus Torvalds
     
  • Pull target fix from Nicholas Bellinger:
    "This patch removes some incorrect legacy code to free se_lun_acl
    memory in the NodeACL release path that could potentially trigger an
    OOPS during shutdown once dynamic -> explicit initiator NodeACL
    conversion has occurred.

    That said, we've been able to trigger an OOPS in v4.0 code for this
    special case when the associated MappedLUNs had not also been made
    explicit based on active TPG LUN layout during the conversion, so it
    really makes senses to go ahead and drop this extra cruft to avoid any
    possible issues here.

    This ends up only effecting iscsi-target module code (it's the only
    user) and is CC'ed to stable."

    * '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Drop incorrect se_lun_acl release for dynamic -> explict ACL conversion

    Linus Torvalds
     
  • So we have another case of paca->irq_happened getting out of
    sync with the HW irq state. This can happen when a perfmon
    interrupt occurs while soft disabled, as it will return to a
    soft disabled but hard enabled context while leaving a stale
    PACA_IRQ_HARD_DIS flag set.

    This patch fixes it, and also adds a test for the condition
    of those flags being out of sync in arch_local_irq_restore()
    when CONFIG_TRACE_IRQFLAGS is enabled.

    This helps catching those gremlins faster (and so far I
    can't seem see any anymore, so that's good news).

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • If a link change interrupt comes in we just clear the interrupt
    and continue along without notifying the upper networking layers
    that the link has changed. Use the mii_check_link() function to
    update the link status whenever a link change interrupt occurs.

    Cc: Ben Dooks
    Signed-off-by: Stephen Boyd
    Signed-off-by: David S. Miller

    Stephen Boyd
     
  • Ethernet vlan header is not on the packet and kept in the skb->vlan_tci
    when it comes from lower dev. This patch inserts vlan header in user
    buffer during skb copy on user read.

    Signed-off-by: Basil Gor
    Acked-by: Michael S. Tsirkin
    Signed-off-by: David S. Miller

    Basil Gor