1. 25 Feb, 2016 1 commit
    • Ondrej Zary's avatar
      sata_via: Apply WD workaround only when needed on VT6421 · 44a9b494
      Ondrej Zary authored
      Currently, workaround for broken WD drives is applied always, slowing
      down all drives. And it has a bug - it's not applied after resume.
      
      Apply the workaround only if the error really appears
      (SErr == 0x1000500). This allows unaffected drives to run at full speed
      (provided that no affected drive is connected to the controller).
      Also make sure the workaround is re-applied on resume.
      
      Tested on VT6421.
      As SCR registers access is known to cause problems on VT6420 (and I
      don't have it to test), keep the workaround applied always on VT6420.
      
      Unaffected drive (Hitachi HDS721680PLA380):
      Before:
      $ hdparm -t --direct /dev/sdb
      /dev/sdb:
       Timing O_DIRECT disk reads: 160 MB in  3.01 seconds =  53.16 MB/sec
      
      After:
      $ hdparm -t --direct /dev/sdb
      /dev/sdb:
       Timing O_DIRECT disk reads: 200 MB in  3.01 seconds =  66.47 MB/sec
      
      Affected drive (WDC WD5003ABYX-18WERA0):
      Before:
      $ hdparm -t --direct /dev/sda
      
      /dev/sda:
       Timing O_DIRECT disk reads: 180 MB in  3.02 seconds =  59.51 MB/sec
      
      After:
      $ hdparm -t --direct /dev/sdb
      /dev/sdb:
       Timing O_DIRECT disk reads: 156 MB in  3.03 seconds =  51.48 MB/sec
      $ hdparm -t --direct /dev/sdb
      /dev/sdb:
       Timing O_DIRECT disk reads: 180 MB in  3.02 seconds =  59.64 MB/sec
      
      The first hdparm is slower because of the error:
      [   50.408042] ata5: Incompatible drive: enabling workaround. This slows down transfer rate to ~60 MB/s
      [   50.728052] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
      [   50.744834] ata5.00: configured for UDMA/133
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      44a9b494
  2. 19 Feb, 2016 7 commits
    • Mika Westerberg's avatar
      ahci: Add runtime PM support for the host controller · 02e53293
      Mika Westerberg authored
      This patch adds runtime PM support for the AHCI host controller driver so
      that the host controller is powered down when all SATA ports are runtime
      suspended. Powering down the AHCI host controller can reduce power
      consumption and possibly allow the CPU to enter lower power idle states
      (S0ix) during runtime.
      
      Runtime PM is blocked by default and needs to be unblocked from userspace
      as needed (via power/* sysfs nodes).
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      02e53293
    • Mika Westerberg's avatar
      ahci: Add functions to manage runtime PM of AHCI ports · bb03c640
      Mika Westerberg authored
      Add new functions ahci_rpm_get_port()/ahci_rpm_put_port() that change
      runtime PM status of AHCI ports. Depending if the AHCI host has runtime PM
      enabled or disabled calling these may trigger runtime suspend/resume of the
      host controller.
      
      We also call these functions in appropriate places to make sure host
      controller registers are available before using them.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      bb03c640
    • Mika Westerberg's avatar
      ahci: Convert driver to use modern PM hooks · f1d848f9
      Mika Westerberg authored
      In order to add support for runtime PM to the ahci driver we first need to
      convert the driver to use modern non-legacy system suspend hooks. There
      should be no functional changes.
      
      tj: Updated .driver.pm init for older compilers as suggested by Andy
          and Chrsitoph.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      f1d848f9
    • Mika Westerberg's avatar
      ahci: Cache host controller version · 8ea909cb
      Mika Westerberg authored
      This allows sysfs nodes to read the cached value directly instead of
      powering up possibly runtime suspended controller.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      8ea909cb
    • Mika Westerberg's avatar
      scsi: Drop runtime PM usage count after host is added · 5c6fab9d
      Mika Westerberg authored
      Runtime PM of the SCSI host is already handled by calls to
      scsi_autopm_get_host() and scsi_autopm_put_host() from appropriate places
      whenever the host needs to be powered on. This works fine when there is
      device connected to the host as once it runtime suspends the host will too.
      
      However, if there is no device connected the host is never runtime
      suspended (the usage counter is always 0).
      
      Allow runtime suspend of host even if it has no devices connected by
      calling scsi_autopm_put_host() at the end of scsi_add_host_with_dma(). We
      temporarily increase runtime PM usage counter first so call to
      scsi_autopm_put_host() will result idle request to be scheduled for the
      device.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      5c6fab9d
    • Mika Westerberg's avatar
      scsi: Set request queue runtime PM status back to active on resume · 356fd266
      Mika Westerberg authored
      We treat system suspend of SCSI devices pretty much the same as runtime
      suspend. If the device is already runtime suspended we leave it to that
      state during system suspend. On resume from system sleep we then resume the
      device and correct the runtime PM status back to "active".
      
      There is a problem with this because runtime PM status of the request queue
      in question is not changed (it will be in "suspended" state). When SCSI
      disk driver (sd.c) resumes the disk it sends START message to the device
      and because the request queue is still in "suspended" state
      blk_pm_peek_request() returns NULL preventing resume of the disk.
      
      The issue can be reproduced with following commands:
      
        # echo auto > /sys/block/sda/device/power/control
        # echo 15000 > /sys/block/sda/device/power/autosuspend_delay_ms
        [   57.191706] sd 0:0:0:0: [sda] Synchronizing SCSI cache
        [   57.380015] sd 0:0:0:0: [sda] Stopping disk
      
      Now suspend the machine:
      
        # rtcwake -s10 -mmem
      
      This ends up in soft lockup because resume is not proceeding accordingly
      and userspace is never restarted. Also there is nothing printed to the
      console.
      
      Fix this by forcing request queue status to "active" before the disk is
      resumed.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      356fd266
    • Mika Westerberg's avatar
      block: Add blk_set_runtime_active() · d07ab6d1
      Mika Westerberg authored
      If block device is left runtime suspended during system suspend, resume
      hook of the driver typically corrects runtime PM status of the device back
      to "active" after it is resumed. However, this is not enough as queue's
      runtime PM status is still "suspended". As long as it is in this state
      blk_pm_peek_request() returns NULL and thus prevents new requests to be
      processed.
      
      Add new function blk_set_runtime_active() that can be used to force the
      queue status back to "active" as needed.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Acked-by: default avatarJens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      d07ab6d1
  3. 18 Feb, 2016 2 commits
  4. 11 Feb, 2016 5 commits
  5. 10 Feb, 2016 1 commit
  6. 01 Feb, 2016 1 commit
    • Tejun Heo's avatar
      libata: fix sff host state machine locking while polling · 8eee1d3e
      Tejun Heo authored
      The bulk of ATA host state machine is implemented by
      ata_sff_hsm_move().  The function is called from either the interrupt
      handler or, if polling, a work item.  Unlike from the interrupt path,
      the polling path calls the function without holding the host lock and
      ata_sff_hsm_move() selectively grabs the lock.
      
      This is completely broken.  If an IRQ triggers while polling is in
      progress, the two can easily race and end up accessing the hardware
      and updating state machine state at the same time.  This can put the
      state machine in an illegal state and lead to a crash like the
      following.
      
        kernel BUG at drivers/ata/libata-sff.c:1302!
        invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN
        Modules linked in:
        CPU: 1 PID: 10679 Comm: syz-executor Not tainted 4.5.0-rc1+ #300
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
        task: ffff88002bd00000 ti: ffff88002e048000 task.ti: ffff88002e048000
        RIP: 0010:[<ffffffff83a83409>]  [<ffffffff83a83409>] ata_sff_hsm_move+0x619/0x1c60
        ...
        Call Trace:
         <IRQ>
         [<ffffffff83a84c31>] __ata_sff_port_intr+0x1e1/0x3a0 drivers/ata/libata-sff.c:1584
         [<ffffffff83a85611>] ata_bmdma_port_intr+0x71/0x400 drivers/ata/libata-sff.c:2877
         [<     inline     >] __ata_sff_interrupt drivers/ata/libata-sff.c:1629
         [<ffffffff83a85bf3>] ata_bmdma_interrupt+0x253/0x580 drivers/ata/libata-sff.c:2902
         [<ffffffff81479f98>] handle_irq_event_percpu+0x108/0x7e0 kernel/irq/handle.c:157
         [<ffffffff8147a717>] handle_irq_event+0xa7/0x140 kernel/irq/handle.c:205
         [<ffffffff81484573>] handle_edge_irq+0x1e3/0x8d0 kernel/irq/chip.c:623
         [<     inline     >] generic_handle_irq_desc include/linux/irqdesc.h:146
         [<ffffffff811a92bc>] handle_irq+0x10c/0x2a0 arch/x86/kernel/irq_64.c:78
         [<ffffffff811a7e4d>] do_IRQ+0x7d/0x1a0 arch/x86/kernel/irq.c:240
         [<ffffffff86653d4c>] common_interrupt+0x8c/0x8c arch/x86/entry/entry_64.S:520
         <EOI>
         [<     inline     >] rcu_lock_acquire include/linux/rcupdate.h:490
         [<     inline     >] rcu_read_lock include/linux/rcupdate.h:874
         [<ffffffff8164b4a1>] filemap_map_pages+0x131/0xba0 mm/filemap.c:2145
         [<     inline     >] do_fault_around mm/memory.c:2943
         [<     inline     >] do_read_fault mm/memory.c:2962
         [<     inline     >] do_fault mm/memory.c:3133
         [<     inline     >] handle_pte_fault mm/memory.c:3308
         [<     inline     >] __handle_mm_fault mm/memory.c:3418
         [<ffffffff816efb16>] handle_mm_fault+0x2516/0x49a0 mm/memory.c:3447
         [<ffffffff8127dc16>] __do_page_fault+0x376/0x960 arch/x86/mm/fault.c:1238
         [<ffffffff8127e358>] trace_do_page_fault+0xe8/0x420 arch/x86/mm/fault.c:1331
         [<ffffffff8126f514>] do_async_page_fault+0x14/0xd0 arch/x86/kernel/kvm.c:264
         [<ffffffff86655578>] async_page_fault+0x28/0x30 arch/x86/entry/entry_64.S:986
      
      Fix it by ensuring that the polling path is holding the host lock
      before entering ata_sff_hsm_move() so that all hardware accesses and
      state updates are performed under the host lock.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-tested-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Link: http://lkml.kernel.org/g/CACT4Y+b_JsOxJu2EZyEf+mOXORc_zid5V1-pLZSroJVxyWdSpw@mail.gmail.com
      Cc: stable@vger.kernel.org
      8eee1d3e
  7. 29 Jan, 2016 1 commit
    • Tejun Heo's avatar
      libata-sff: use WARN instead of BUG on illegal host state machine state · a588afc9
      Tejun Heo authored
      ata_sff_hsm_move() triggers BUG if it sees a host state machine state
      that it dind't expect.  The risk for data corruption when the
      condition occurs is low as it's highly unlikely that it would lead to
      spurious completion of commands.  The BUG occasionally triggered for
      subtle race conditions in the driver.  Let's downgrade it to WARN so
      that it doesn't kill the machine unnecessarily.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      a588afc9
  8. 25 Jan, 2016 3 commits
  9. 24 Jan, 2016 19 commits
    • Linus Torvalds's avatar
      Linux 4.5-rc1 · 92e963f5
      Linus Torvalds authored
      92e963f5
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · e2464688
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is the main pull request for MIPS for 4.5 plus some 4.4 fixes.
      
        The executive summary:
      
         - ATH79 platform improvments, use DT bindings for the ATH79 USB PHY.
         - Avoid useless rebuilds for zboot.
         - jz4780: Add NEMC, BCH and NAND device tree nodes
         - Initial support for the MicroChip's DT platform.  As all the device
           drivers are missing this is still of limited use.
         - Some Loongson3 cleanups.
         - The unavoidable whitespace polishing.
         - Reduce clock skew when synchronizing the CPU cycle counters on CPU
           startup.
         - Add MIPS R6 fixes.
         - Lots of cleanups across arch/mips as fallout from KVM.
         - Lots of minor fixes and changes for IEEE 754-2008 support to the
           FPU emulator / fp-assist software.
         - Minor Ralink, BCM47xx and bcm963xx platform support improvments.
         - Support SMP on BCM63168"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (84 commits)
        MIPS: zboot: Add support for serial debug using the PROM
        MIPS: zboot: Avoid useless rebuilds
        MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB
        MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function
        MIPS: bcm963xx: Update bcm_tag field image_sequence
        MIPS: bcm963xx: Move extended flash address to bcm_tag header file
        MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure
        MIPS: bcm63xx: nvram: Use nvram structure definition from header file
        MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure
        MAINTAINERS: Add KVM for MIPS entry
        MIPS: KVM: Add missing newline to kvm_err()
        MIPS: Move KVM specific opcodes into asm/inst.h
        MIPS: KVM: Use cacheops.h definitions
        MIPS: Break down cacheops.h definitions
        MIPS: Use EXCCODE_ constants with set_except_vector()
        MIPS: Update trap codes
        MIPS: Move Cause.ExcCode trap codes to mipsregs.h
        MIPS: KVM: Make kvm_mips_{init,exit}() static
        MIPS: KVM: Refactor added offsetof()s
        MIPS: KVM: Convert EXPORT_SYMBOL to _GPL
        ...
      e2464688
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.5-2' of... · e1c10879
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver updates from Darren Hart:
       "Emergency travel prevented me from completing my final testing on this
        until today.  Nothing here that couldn't wait until RC1 fixes, but I
        thought it best to get it out sooner rather than later as it does
        contain a build warning fix.
      
        Summary:
      
        A build warning fix, MAINTAINERS cleanup, and a new DMI quirk:
      
        ideapad-laptop:
         - Add Lenovo Yoga 700 to no_hw_rfkill dmi list
      
        MAINTAINERS:
         - Combine multiple telemetry entries
      
        intel_telemetry_debugfs:
         - Fix unused warnings in telemetry debugfs"
      
      * tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
        MAINTAINERS: Combine multiple telemetry entries
        intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs
      e1c10879
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 81f05fee
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
       "The top merge commit was re-generated yesterday because two topic
        branches were dropped from this pull request in the last minute due to
        some unaddressed comments.  All the other material has been in
        linux-next for quite a while.
      
        Specifics:
      
         - Enhance thermal core to handle unexpected device cooling states
           after fresh boot and system resume.  From Zhang Rui and Chen Yu.
      
         - Several fixes and cleanups on Rockchip and RCAR thermal drivers.
           From Caesar Wang and Kuninori Morimoto.
      
         - Add Broxton support for Intel processor thermal reporting device
           driver.  From Amy Wiles"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: trip_point_temp_store() calls thermal_zone_device_update()
        thermal: rcar: rcar_thermal_get_temp() return error if strange temp
        thermal: rcar: check irq possibility in rcar_thermal_irq_xxx()
        thermal: rcar: check every rcar_thermal_update_temp() return value
        thermal: rcar: move rcar_thermal_dt_ids to upside
        thermal: rockchip: Support the RK3399 SoCs in thermal driver
        thermal: rockchip: Support the RK3228 SoCs in thermal driver
        dt-bindings: rockchip-thermal: Support the RK3228/RK3399 SoCs compatible
        thermal: rockchip: fix a trivial typo
        Thermal: Enable Broxton SoC thermal reporting device
        thermal: constify pch_dev_ops structure
        Thermal: do thermal zone update after a cooling device registered
        Thermal: handle thermal zone device properly during system sleep
        Thermal: initialize thermal zone device correctly
      81f05fee
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · c52cb431
      Linus Torvalds authored
      Pull 9p updates from Eric Van Hensbergen:
       "Sorry for the last minute pull request, there's was a change that
        didn't get pulled into for-next until two weeks ago and I wanted to
        give it some bake time.
      
        Summary:
      
        Rework and error handling fixes, primarily in the fscatch and fd
        transports"
      
      * tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: use fscache mutex rather than spinlock
        9p: trans_fd, bail out if recv fcall if missing
        9p: trans_fd, read rework to use p9_parse_header
        net/9p: Add device name details on error
      c52cb431
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 00e3f5cc
      Linus Torvalds authored
      Pull Ceph updates from Sage Weil:
       "The two main changes are aio support in CephFS, and a series that
        fixes several issues in the authentication key timeout/renewal code.
      
        On top of that are a variety of cleanups and minor bug fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        libceph: remove outdated comment
        libceph: kill off ceph_x_ticket_handler::validity
        libceph: invalidate AUTH in addition to a service ticket
        libceph: fix authorizer invalidation, take 2
        libceph: clear messenger auth_retry flag if we fault
        libceph: fix ceph_msg_revoke()
        libceph: use list_for_each_entry_safe
        ceph: use i_size_{read,write} to get/set i_size
        ceph: re-send AIO write request when getting -EOLDSNAP error
        ceph: Asynchronous IO support
        ceph: Avoid to propagate the invalid page point
        ceph: fix double page_unlock() in page_mkwrite()
        rbd: delete an unnecessary check before rbd_dev_destroy()
        libceph: use list_next_entry instead of list_entry_next
        ceph: ceph_frag_contains_value can be boolean
        ceph: remove unused functions in ceph_frag.h
      00e3f5cc
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 772950ed
      Linus Torvalds authored
      Pull SMB3 fixes from Steve French:
       "A collection of CIFS/SMB3 fixes.
      
        It includes a couple bug fixes, a few for improved debugging of
        cifs.ko and some improvements to the way cifs does key generation.
      
        I do have some additional bug fixes I expect in the next week or two
        (to address a problem found by xfstest, and some fixes for SMB3.11
        dialect, and a couple patches that just came in yesterday that I am
        reviewing)"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
        cifs: fix race between call_async() and reconnect()
        Prepare for encryption support (first part). Add decryption and encryption key generation. Thanks to Metze for helping with this.
        cifs: Allow using O_DIRECT with cache=loose
        cifs: Make echo interval tunable
        cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary
        Print IP address of unresponsive server
        cifs: Ratelimit kernel log messages
      772950ed
    • Josh Boyer's avatar
      ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list · 6b31de3e
      Josh Boyer authored
      Like the Yoga 900 models the Lenovo Yoga 700 does not have a
      hw rfkill switch, and trying to read the hw rfkill switch through the
      ideapad module causes it to always reported blocking breaking wifi.
      
      This commit adds the Lenovo Yoga 700 to the no_hw_rfkill dmi list, fixing
      the wifi breakage.
      
      BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1295272
      Tested-by: <dinyar.rabady+spam@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      6b31de3e
    • Souvik Kumar Chakravarty's avatar
      MAINTAINERS: Combine multiple telemetry entries · f1fc3cd8
      Souvik Kumar Chakravarty authored
      This patch combines all the telemetry file entries in MAINTAINERS via
      wildcard.
      Signed-off-by: default avatarSouvik Kumar Chakravarty <souvik.k.chakravarty@intel.com>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      f1fc3cd8
    • Souvik Kumar Chakravarty's avatar
      intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs · 7885f2f9
      Souvik Kumar Chakravarty authored
      This patch fixes compile time warnings when CONFIG_PM_SLEEP
      is undefined. In this case sleep related counters are unused.
      Signed-off-by: default avatarSouvik Kumar Chakravarty <souvik.k.chakravarty@intel.com>
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      7885f2f9
    • Christoph Lameter's avatar
      vmstat: Remove BUG_ON from vmstat_update · 587198ba
      Christoph Lameter authored
      If we detect that there is nothing to do just set the flag and do not
      check if it was already set before.  Races really do not matter.  If the
      flag is set by any code then the shepherd will start dealing with the
      situation and reenable the vmstat workers when necessary again.
      
      Since commit 0eb77e98 ("vmstat: make vmstat_updater deferrable again
      and shut down on idle") quiet_vmstat might update cpu_stat_off and mark
      a particular cpu to be handled by vmstat_shepherd.  This might trigger a
      VM_BUG_ON in vmstat_update because the work item might have been
      sleeping during the idle period and see the cpu_stat_off updated after
      the wake up.  The VM_BUG_ON is therefore misleading and no more
      appropriate.  Moreover it doesn't really suite any protection from real
      bugs because vmstat_shepherd will simply reschedule the vmstat_work
      anytime it sees a particular cpu set or vmstat_update would do the same
      from the worker context directly.  Even when the two would race the
      result wouldn't be incorrect as the counters update is fully idempotent.
      Reported-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: default avatarChristoph Lameter <cl@linux.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      587198ba
    • Ralf Baechle's avatar
      07d17f09
    • Alban Bedel's avatar
      MIPS: zboot: Add support for serial debug using the PROM · dbb98314
      Alban Bedel authored
      As most platforms implement the PROM serial interface prom_putchar()
      add a simple bridge to allow re-using this code for zboot.
      Signed-off-by: default avatarAlban Bedel <albeu@free.fr>
      Cc: Alex Smith <alex.smith@imgtec.com>
      Cc: Andrew Bresticker <abrestic@chromium.org>
      Cc: Wu Zhangjin <wuzhangjin@gmail.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/11811/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      dbb98314
    • Alban Bedel's avatar
      MIPS: zboot: Avoid useless rebuilds · 25f66096
      Alban Bedel authored
      Add dummy.o to the targets list, and fill targets automatically from
      $(vmlinuzobjs) to avoid having to maintain two lists.
      
      When building with XZ compression copy ashldi3.c to the build
      directory to use a different object file for the kernel and zboot.
      Without this the same object file need to be build with different
      flags which cause a rebuild at every run.
      Signed-off-by: default avatarAlban Bedel <albeu@free.fr>
      Cc: linux-mips@linux-mips.org
      Cc: Alex Smith <alex.smith@imgtec.com>
      Cc: Wu Zhangjin <wuzhangjin@gmail.com>
      Cc: Andrew Bresticker <abrestic@chromium.org>
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/11810/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      25f66096
    • Florian Fainelli's avatar
      MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB · a7b43812
      Florian Fainelli authored
      Allow BMIPS_GENERIC supported platforms to build GPIO controller
      drivers.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarDragan Stancevic <dragan.stancevic@gmail.com>
      Cc: cernekee@gmail.com
      Cc: jaedon.shin@gmail.com
      Cc: gregory.0xf0@gmail.com
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/12019/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a7b43812
    • Simon Arlott's avatar
      MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function · 5bdb102b
      Simon Arlott authored
      Remove bcm63xx_nvram_get_psi_size() as it now has no users.
      Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Brian Norris <computersforpeace@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jogo@openwrt.org>
      Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: MTD Maling List <linux-mtd@lists.infradead.org>
      Patchwork: https://patchwork.linux-mips.org/patch/11836/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      5bdb102b
    • Simon Arlott's avatar
      MIPS: bcm963xx: Update bcm_tag field image_sequence · 696569f7
      Simon Arlott authored
      The "dual_image" and "inactive_flag" fields should be merged into a single
      "image_sequence" field.
      Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Brian Norris <computersforpeace@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jogo@openwrt.org>
      Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: MTD Maling List <linux-mtd@lists.infradead.org>
      Patchwork: https://patchwork.linux-mips.org/patch/11834/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      696569f7
    • Simon Arlott's avatar
      MIPS: bcm963xx: Move extended flash address to bcm_tag header file · 1f29cb19
      Simon Arlott authored
      The extended flash address needs to be subtracted from bcm_tag flash
      image offsets. Move this value to the bcm_tag header file.
      
      Renamed define name to consistently use bcm963xx for flash layout
      which should be considered a property of the board and not the SoC
      (i.e. bcm63xx could theoretically be used on a board without CFE
      or any flash).
      Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Brian Norris <computersforpeace@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jogo@openwrt.org>
      Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: MTD Maling List <linux-mtd@lists.infradead.org>
      Patchwork: https://patchwork.linux-mips.org/patch/11833/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      1f29cb19
    • Simon Arlott's avatar
      MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure · 8fce60b8
      Simon Arlott authored
      Move Broadcom BCM963xx image tag data structure to include/linux/
      so that drivers outside of mach-bcm63xx can use it.
      Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Brian Norris <computersforpeace@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jogo@openwrt.org>
      Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: MTD Maling List <linux-mtd@lists.infradead.org>
      Patchwork: https://patchwork.linux-mips.org/patch/11832/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      8fce60b8