Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync up with Linus #97

Merged
merged 10 commits into from
Aug 27, 2015
Merged

Sync up with Linus #97

merged 10 commits into from
Aug 27, 2015

Commits on Aug 22, 2015

  1. x86/apic: Fix fallout from x2apic cleanup

    In the recent x2apic cleanup I got two things really wrong:
    1) The safety check in __disable_x2apic which allows the function to
       be called unconditionally is backwards. The check is there to
       prevent access to the apic MSR in case that the machine has no
       apic. Though right now it returns if the machine has an apic and
       therefor the disabling of x2apic is never invoked.
    
    2) x2apic_disable() sets x2apic_mode to 0 after registering the local
       apic. That's wrong, because register_lapic_address() checks x2apic
       mode and therefor takes the wrong code path.
    
    This results in boot failures on machines with x2apic preenabled by
    BIOS and can also lead to an fatal MSR access on machines without
    apic.
    
    The solutions are simple:
    1) Correct the sanity check for apic availability
    2) Clear x2apic_mode _before_ calling register_lapic_address()
    
    Fixes: 659006b 'x86/x2apic: Split enable and setup function'
    Reported-and-tested-by: Javier Monteagudo <[email protected]>
    Signed-off-by: Thomas Gleixner <[email protected]>
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1224764
    Cc: [email protected] # 4.0+
    Cc: Laura Abbott <[email protected]>
    Cc: Jiang Liu <[email protected]>
    Cc: Joerg Roedel <[email protected]>
    Cc: Tony Luck <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    KAGA-KOKO committed Aug 22, 2015
    Configuration menu
    Copy the full SHA
    a57e456 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2015

  1. nfsd: Add Jeff Layton as co-maintainer

    Jeff has been doing a lot of development (including much of the
    state-locking rewrite just as one example) plus lots of review and other
    miscellaneous nfsd work, so let's acknowledge the status quo.
    
    I'll continue to be the one to send regular pull requests but Jeff will
    should be available to cover there occasionally too.
    
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    J. Bruce Fields authored and torvalds committed Aug 24, 2015
    Configuration menu
    Copy the full SHA
    883985f View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2015

  1. Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull x86 fix from Thomas Gleixner:
     "A single fix for a APIC regression introduced in 4.0 which went
      undetected until now.
    
      I screwed up the x2apic cleanup in a subtle way.  The screwup is only
      visible on systems which have x2apic preenabled in the BIOS and need
      to disable it during boot"
    
    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/apic: Fix fallout from x2apic cleanup
    torvalds committed Aug 25, 2015
    Configuration menu
    Copy the full SHA
    b1713b1 View commit details
    Browse the repository at this point in the history
  2. writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and al…

    …ways call wait_sb_inodes()
    
    e797291 ("writeback: don't issue wb_writeback_work if clean")
    updated writeback path to avoid kicking writeback work items if there
    are no inodes to be written out; unfortunately, the avoidance logic
    was too aggressive and broke sync_inodes_sb().
    
    * sync_inodes_sb() must write out I_DIRTY_TIME inodes but I_DIRTY_TIME
      inodes dont't contribute to bdi/wb_has_dirty_io() tests and were
      being skipped over.
    
    * inodes are taken off wb->b_dirty/io/more_io lists after writeback
      starts on them.  sync_inodes_sb() skipping wait_sb_inodes() when
      bdi_has_dirty_io() breaks it by making it return while writebacks
      are in-flight.
    
    This patch fixes the breakages by
    
    * Removing bdi_has_dirty_io() shortcut from bdi_split_work_to_wbs().
      The callers are already testing the condition.
    
    * Removing bdi_has_dirty_io() shortcut from sync_inodes_sb() so that
      it always calls into bdi_split_work_to_wbs() and wait_sb_inodes().
    
    * Making bdi_split_work_to_wbs() consider the b_dirty_time list for
      WB_SYNC_ALL writebacks.
    
    Kudos to Eryu, Dave and Jan for tracking down the issue.
    
    Signed-off-by: Tejun Heo <[email protected]>
    Fixes: e797291 ("writeback: don't issue wb_writeback_work if clean")
    Link: http://lkml.kernel.org/g/[email protected]
    Reported-and-bisected-by: Eryu Guan <[email protected]>
    Cc: Dave Chinner <[email protected]>
    Cc: Jan Kara <[email protected]>
    Cc: Ted Ts'o <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    htejun authored and axboe committed Aug 25, 2015
    Configuration menu
    Copy the full SHA
    006a097 View commit details
    Browse the repository at this point in the history
  3. mtip32x: fix regression introduced by blk-mq per-hctx flush

    Hi,
    
    After commit f70ced0 (blk-mq: support per-distpatch_queue flush
    machinery), the mtip32xx driver may oops upon module load due to walking
    off the end of an array in mtip_init_cmd.  On initialization of the
    flush_rq, init_request is called with request_index >= the maximum queue
    depth the driver supports.  For mtip32xx, this value is used to index
    into an array.  What this means is that the driver will walk off the end
    of the array, and either oops or cause random memory corruption.
    
    The problem is easily reproduced by doing modprobe/rmmod of the mtip32xx
    driver in a loop.  I can typically reproduce the problem in about 30
    seconds.
    
    Now, in the case of mtip32xx, it actually doesn't support flush/fua, so
    I think we can simply return without doing anything.  In addition, no
    other mq-enabled driver does anything with the request_index passed into
    init_request(), so no other driver is affected.  However, I'm not really
    sure what is expected of drivers.  Ming, what did you envision drivers
    would do when initializing the flush requests?
    
    Signed-off-by: Jeff Moyer <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    JeffMoyer authored and axboe committed Aug 25, 2015
    Configuration menu
    Copy the full SHA
    74c9c91 View commit details
    Browse the repository at this point in the history
  4. nfit, nd_blk: BLK status register is only 32 bits

    Only read 32 bits for the BLK status register in read_blk_stat().
    
    The format and size of this register is defined in the
    "NVDIMM Driver Writer's guide":
    
    http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf
    
    Signed-off-by: Ross Zwisler <[email protected]>
    Reported-by: Nicholas Moulin <[email protected]>
    Tested-by: Nicholas Moulin <[email protected]>
    Reviewed-by: Jeff Moyer <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Ross Zwisler authored and djbw committed Aug 25, 2015
    Configuration menu
    Copy the full SHA
    de4a196 View commit details
    Browse the repository at this point in the history
  5. LSM: restore certain default error codes

    While in most cases commit b1d9e6b ("LSM: Switch to lists of hooks")
    retained previous error returns, in three cases it altered them without
    any explanation in the commit message. Restore all of them - in the
    security_old_inode_init_security() case this led to reiserfs using
    uninitialized data, sooner or later crashing the system (the only other
    user of this function - ocfs2 - was unaffected afaict, since it passes
    pre-initialized structures).
    
    Signed-off-by: Jan Beulich <[email protected]>
    Signed-off-by: Casey Schaufler <[email protected]>
    Signed-off-by: James Morris <[email protected]>
    jbeulich authored and James Morris committed Aug 25, 2015
    Configuration menu
    Copy the full SHA
    e308fd3 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2015

  1. Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/nvdimm/nvdimm
    
    Pull nvdimm fix from Dan Williams:
     "A single fix for status register read size in the nd_blk driver.
    
      The effect of getting the width of this register read wrong is that
      all I/O fails when the read returns non-zero.  Given the availability
      of ACPI 6 NFIT enabled platforms, this could reasonably wait to come
      in during the 4.3 merge window with a tag for 4.2-stable.  Otherwise,
      this makes the 4.2 kernel fully functional with devices that conform
      to the mmio-block-apertures defined in the ACPI 6 NFIT (NVDIMM
      Firmware Interface Table)"
    
    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
      nfit, nd_blk: BLK status register is only 32 bits
    torvalds committed Aug 26, 2015
    Configuration menu
    Copy the full SHA
    f045fd7 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/jmorris/linux-security
    
    Pull LSM regression fix from James Morris.
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
      LSM: restore certain default error codes
    torvalds committed Aug 26, 2015
    Configuration menu
    Copy the full SHA
    f5db4b3 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'for-linus' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
     "Two fixes in this pull request:
    
       - The writeback regression fix from Tejun, which has been weeks in
         the making.  This fixes a case where we would sometimes not issue
         writeback when we should have.
    
       - An older fix for a memory corruption issue in mtip32xx.  It was
         deferred since we wanted a better fix for this (driver should not
         have to handle that case), but given the timing, it's better to put
         the simple fix in for 4.2 release"
    
    * 'for-linus' of git://git.kernel.dk/linux-block:
      mtip32x: fix regression introduced by blk-mq per-hctx flush
      writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes()
    torvalds committed Aug 26, 2015
    Configuration menu
    Copy the full SHA
    f9ed72d View commit details
    Browse the repository at this point in the history