1. 21 Feb, 2012 3 commits
    • Zheng Liu's avatar
      ext4: format flag in dx_probe() · 9ee49302
      Zheng Liu authored
      Fix ext4_warning format flag in dx_probe().
      
      CC: "Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: default avatarZheng Liu <wenqing.lz@taobao.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      9ee49302
    • Eric Sandeen's avatar
      ext4: avoid deadlock on sync-mounted FS w/o journal · c1bb05a6
      Eric Sandeen authored
      Processes hang forever on a sync-mounted ext2 file system that
      is mounted with the ext4 module (default in Fedora 16).
      
      I can reproduce this reliably by mounting an ext2 partition with
      "-o sync" and opening a new file an that partition with vim. vim
      will hang in "D" state forever.  The same happens on ext4 without
      a journal.
      
      I am attaching a small patch here that solves this issue for me.
      In the sync mounted case without a journal,
      ext4_handle_dirty_metadata() may call sync_dirty_buffer(), which
      can't be called with buffer lock held.
      
      Also move mb_cache_entry_release inside lock to avoid race
      fixed previously by 8a2bfdcb ext[34]: EA block reference count racing fix
      Note too that ext2 fixed this same problem in 2006 with
      b2f49033 [PATCH] fix deadlock in ext2
      
      Signed-off-by: Martin.Wilck@ts.fujitsu.com
      [sandeen@redhat.com: move mb_cache_entry_release before unlock, edit commit msg]
      Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      c1bb05a6
    • Lukas Czerner's avatar
      ext4: fix resize when resizing within single group · a0ade1de
      Lukas Czerner authored
      When resizing file system in the way that the new size of the file
      system is still in the same group (no new groups are added), then we can
      hit a BUG_ON in ext4_alloc_group_tables()
      
      BUG_ON(flex_gd->count == 0 || group_data == NULL);
      
      because flex_gd->count is zero. The reason is the missing check for such
      case, so the code always extend the last group fully and then attempt to
      add more groups, but at that time n_blocks_count is actually smaller
      than o_blocks_count.
      
      It can be easily reproduced like this:
      
      mkfs.ext4 -b 4096 /dev/sda 30M
      mount /dev/sda /mnt/test
      resize2fs /dev/sda 50M
      
      Fix this by checking whether the resize happens within the singe group
      and only add that many blocks into the last group to satisfy user
      request. Then o_blocks_count == n_blocks_count and the resize will exit
      successfully without and attempt to add more groups into the fs.
      
      Also fix mixing together block number and blocks count which might be
      confusing and can easily lead to off-by-one errors (but it is actually
      not the case here since the two occurrence of this mix-up will cancel
      each other).
      Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
      Reported-by: default avatarMilan Broz <mbroz@redhat.com>
      Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      a0ade1de
  2. 20 Feb, 2012 18 commits
  3. 07 Feb, 2012 1 commit
  4. 31 Jan, 2012 4 commits
    • Linus Torvalds's avatar
      Linux 3.3-rc2 · 62aa2b53
      Linus Torvalds authored
      62aa2b53
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream · d3712b9d
      Linus Torvalds authored
      There are few important bug fixes for LogFS
      
      * tag 'for-linus' of git://github.com/prasad-joshi/logfs_upstream:
        Logfs: Allow NULL block_isbad() methods
        logfs: Grow inode in delete path
        logfs: Free areas before calling generic_shutdown_super()
        logfs: remove useless BUG_ON
        MAINTAINERS: Add Prasad Joshi in LogFS maintiners
        logfs: Propagate page parameter to __logfs_write_inode
        logfs: set superblock shutdown flag after generic sb shutdown
        logfs: take write mutex lock during fsync and sync
        logfs: Prevent memory corruption
        logfs: update page reference count for pined pages
      
      Fix up conflict in fs/logfs/dev_mtd.c due to semantic change in what
      "mtd->block_isbad" means in commit f2933e86: "Logfs: Allow NULL
      block_isbad() methods" clashing with the abstraction changes in the
      commits 7086c19d: "mtd: introduce mtd_block_isbad interface" and
      d58b27ed: "logfs: do not use 'mtd->block_isbad' directly".
      
      This resolution takes the semantics from commit f2933e86, and just
      makes mtd_block_isbad() return zero (false) if the 'block_isbad'
      function is NULL.  But that also means that now "mtd_can_have_bb()"
      always returns 0.
      
      Now, "mtd_block_markbad()" will obviously return an error if the
      low-level driver doesn't support bad blocks, so this is somewhat
      non-symmetric, but it actually makes sense if a NULL "block_isbad"
      function is considered to mean "I assume that all my blocks are always
      good".
      d3712b9d
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of... · c5d2bc11
      Linus Torvalds authored
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (w83627ehf) Disable setting DC mode for pwm2, pwm3 on NCT6776F
        hwmon: (sht15) fix bad error code
        MAINTAINERS: Drop maintainer for MAX1668 hwmon driver
        MAINTAINERS: Add hwmon entries for Wolfson
        hwmon: (f71805f) Fix clamping of temperature limits
      c5d2bc11
    • Linus Torvalds's avatar
      Merge branch 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 8e2a2880
      Linus Torvalds authored
      Here are some fixes to the pin control system that has accumulated since
      -rc1.  Mainly Tony Lindgren fixed the module load/unload logic and the
      rest are minor fixes and documentation.
      
      * 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: add checks for empty function names
        pinctrl: fix pinmux_hog_maps when ctrl_dev_name is not set
        pinctrl: fix some pinmux typos
        pinctrl: free debugfs entries when unloading a pinmux driver
        pinctrl: unbreak error messages
        Documentation/pinctrl: fix a few syntax errors in code examples
        pinctrl: fix pinconf_pins_show iteration
      8e2a2880
  5. 30 Jan, 2012 14 commits
    • Linus Torvalds's avatar
      Merge tag 'tty-3.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 27ba234c
      Linus Torvalds authored
      Here are some tty/serial patches for 3.3-rc1
      
      Big thing here is the movement of the 8250 serial drivers to their own
      directory, now that the patch churn has calmed down.
      
      Other than that, only minor stuff (omap patches were reverted as they
      were found to be wrong), and another broken driver removed from the
      system.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      * tag 'tty-3.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: Kill off Moorestown code
        Revert "tty: serial: OMAP: ensure FIFO levels are set correctly in non-DMA mode"
        Revert "tty: serial: OMAP: transmit FIFO threshold interrupts don't wake the chip"
        serial: Fix wakeup init logic to speed up startup
        docbook: don't use serial_core.h in device-drivers book
        serial: amba-pl011: lock console writes against interrupts
        amba-pl011: do not disable RTS during shutdown
        tty: serial: OMAP: transmit FIFO threshold interrupts don't wake the chip
        tty: serial: OMAP: ensure FIFO levels are set correctly in non-DMA mode
        omap-serial: make serial_omap_restore_context depend on CONFIG_PM_RUNTIME
        omap-serial :Make the suspend/resume functions depend on CONFIG_PM_SLEEP.
        TTY: fix UV serial console regression
        jsm: Fixed EEH recovery error
        Updated TTY MAINTAINERS info
        serial: group all the 8250 related code together
      27ba234c
    • Linus Torvalds's avatar
      Merge tag 'usb-3.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 6bc2b95e
      Linus Torvalds authored
      Here are a bunch of USB patches for 3.3-rc1.
      
      Nothing major, largest thing here is the removal of some drivers that
      did not work at all.  Other than that, the normal collection of bugfixes
      and new device ids.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      * tag 'usb-3.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (52 commits)
        uwb & wusb: fix kconfig error
        USB: Realtek cr: fix autopm scheduling while atomic
        USB: ftdi_sio: Add more identifiers
        xHCI: Cleanup isoc transfer ring when TD length mismatch found
        usb: musb: omap2430: minor cleanups.
        qcaux: add more Pantech UML190 and UML290 ports
        Revert "drivers: usb: Fix dependency for USB_HWA_HCD"
        usb: mv-otg - Fix build if CONFIG_USB is not set
        USB: cdc-wdm: Avoid hanging on interface with no USB_CDC_DMM_TYPE
        usb: add support for STA2X11 host driver
        drivers: usb: Fix dependency for USB_HWA_HCD
        kernel-doc: fix new warning in usb.h
        USB: OHCI: fix new compiler warnings
        usb: serial: kobil_sct: fix compile warning:
        drivers/usb/host/ehci-fsl.c: add missing iounmap
        USB: cdc-wdm: better allocate a buffer that is at least as big as we tell the USB core
        USB: cdc-wdm: call wake_up_all to allow driver to shutdown on device removal
        USB: cdc-wdm: use two mutexes to allow simultaneous read and write
        USB: cdc-wdm: updating desc->length must be protected by spin_lock
        USB: usbsevseg: fix max length
        ...
      6bc2b95e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a14a8d93
      Linus Torvalds authored
      1) Setting link attributes can modify the size of the attributes that
         would be reported on a subsequent getlink netlink operation,
         therefore min_ifinfo_dump_size needs to be adjusted.  From Stefan
         Gula.
      
      2) Resegmentation of TSO frames while trimming can violate invariants
         expected by callers, namely that the number of segments can only stay
         the same or decrease, never increase.  If MSS changes, however, we
         can trim data but then end up with more segments.  Fix this by only
         segmenting to the MSS already recorded in the SKB.  That's the
         simplest fix for now and if we want to get more fancy in the future
         that's a more involved change.
      
         This probably explains some retransmit counter inaccuracies.
      
         From Neal Cardwell.
      
      3) Fix too-many-wakeups in POLL with AF_UNIX sockets, from Eric Dumazet.
      
      4) Fix CAIF crashes wrt.  namespace handling.  From Eric Dumazet and
         Eric W. Biederman.
      
      5) TCP port selection fixes from Flavio Leitner.
      
      6) More socket memory cgroup build fixes in certain randonfig
         situations.  From Glauber Costa.
      
      7) Fix TCP memory sysctl regression reported by Ingo Molnar, also from
         Glauber Costa.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        af_unix: fix EPOLLET regression for stream sockets
        tcp: fix tcp_trim_head() to adjust segment count with skb MSS
        net/tcp: Fix tcp memory limits initialization when !CONFIG_SYSCTL
        net caif: Register properly as a pernet subsystem.
        netns: Fail conspicously if someone uses net_generic at an inappropriate time.
        net: explicitly add jump_label.h header to sock.h
        net: RTNETLINK adjusting values of min_ifinfo_dump_size
        ipv6: Fix ip_gre lockless xmits.
        xen-netfront: correct MAX_TX_TARGET calculation.
        netns: fix net_alloc_generic()
        tcp: bind() optimize port allocation
        tcp: bind() fix autoselection to share ports
        l2tp: l2tp_ip - fix possible oops on packet receive
        iwlwifi: fix PCI-E transport "inta" race
        mac80211: set bss_conf.idle when vif is connected
        mac80211: update oper_channel on ibss join
      a14a8d93
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · b527a233
      Linus Torvalds authored
      This fixes an integration issue with the regulator device tree bindings
      which shook out in -rc.  The bindings were overly enthusiatic when
      deciding to set a voltage on a regulator and would try to set zero volts
      on an unconfigured regulator which isn't supported.
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Set apply_uV only when min and max voltages are defined
      b527a233
    • Eric Dumazet's avatar
      af_unix: fix EPOLLET regression for stream sockets · 6f01fd6e
      Eric Dumazet authored
      Commit 0884d7aa (AF_UNIX: Fix poll blocking problem when reading from
      a stream socket) added a regression for epoll() in Edge Triggered mode
      (EPOLLET)
      
      Appropriate fix is to use skb_peek()/skb_unlink() instead of
      skb_dequeue(), and only call skb_unlink() when skb is fully consumed.
      
      This remove the need to requeue a partial skb into sk_receive_queue head
      and the extra sk->sk_data_ready() calls that added the regression.
      
      This is safe because once skb is given to sk_receive_queue, it is not
      modified by a writer, and readers are serialized by u->readlock mutex.
      
      This also reduce number of spinlock acquisition for small reads or
      MSG_PEEK users so should improve overall performance.
      Reported-by: default avatarNick Mathewson <nickm@freehaven.net>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Cc: Alexey Moiseytsev <himeraster@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6f01fd6e
    • Neal Cardwell's avatar
      tcp: fix tcp_trim_head() to adjust segment count with skb MSS · 5b35e1e6
      Neal Cardwell authored
      This commit fixes tcp_trim_head() to recalculate the number of
      segments in the skb with the skb's existing MSS, so trimming the head
      causes the skb segment count to be monotonically non-increasing - it
      should stay the same or go down, but not increase.
      
      Previously tcp_trim_head() used the current MSS of the connection. But
      if there was a decrease in MSS between original transmission and ACK
      (e.g. due to PMTUD), this could cause tcp_trim_head() to
      counter-intuitively increase the segment count when trimming bytes off
      the head of an skb. This violated assumptions in tcp_tso_acked() that
      tcp_trim_head() only decreases the packet count, so that packets_acked
      in tcp_tso_acked() could underflow, leading tcp_clean_rtx_queue() to
      pass u32 pkts_acked values as large as 0xffffffff to
      ca_ops->pkts_acked().
      
      As an aside, if tcp_trim_head() had really wanted the skb to reflect
      the current MSS, it should have called tcp_set_skb_tso_segs()
      unconditionally, since a decrease in MSS would mean that a
      single-packet skb should now be sliced into multiple segments.
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Acked-by: default avatarNandita Dukkipati <nanditad@google.com>
      Acked-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b35e1e6
    • Glauber Costa's avatar
      net/tcp: Fix tcp memory limits initialization when !CONFIG_SYSCTL · 4acb4190
      Glauber Costa authored
      sysctl_tcp_mem() initialization was moved to sysctl_tcp_ipv4.c
      in commit 3dc43e3e, since it
      became a per-ns value.
      
      That code, however, will never run when CONFIG_SYSCTL is
      disabled, leading to bogus values on those fields - causing hung
      TCP sockets.
      
      This patch fixes it by keeping an initialization code in
      tcp_init(). It will be overwritten by the first net namespace
      init if CONFIG_SYSCTL is compiled in, and do the right thing if
      it is compiled out.
      
      It is also named properly as tcp_init_mem(), to properly signal
      its non-sysctl side effect on TCP limits.
      Reported-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarGlauber Costa <glommer@parallels.com>
      Cc: David S. Miller <davem@davemloft.net>
      Link: http://lkml.kernel.org/r/4F22D05A.8030604@parallels.com
      [ renamed the function, tidied up the changelog a bit ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4acb4190
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 883120eb
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        [S390] dasd: revalidate server for new pathgroup
        [S390] dasd: revert LCU optimization
        [S390] cleanup entry point definition
      883120eb
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze · f07d4a76
      Linus Torvalds authored
      * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: generic atomic64 support
      f07d4a76
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · dfd07ec3
      Linus Torvalds authored
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        vmwgfx: Fix assignment in vmw_framebuffer_create_handle
        drm/radeon/kms: Fix device tree linkage of i2c buses
        drm: Pass the real error code back during GEM bo initialisation
        Revert "drm/i810: cleanup reclaim_buffers"
      dfd07ec3
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.3-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · f94f72ee
      Linus Torvalds authored
      NFS client bugfixes for Linux 3.3 (pull 3)
      
      * tag 'nfs-for-3.3-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: Fix machine creds in generic_create_cred and generic_match
      f94f72ee
    • Linus Torvalds's avatar
      Merge tag 'pm-fix-for-3.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a51f67a4
      Linus Torvalds authored
      Power management fix for 3.3-rc2
      
      Fix for a hibernate (s2disk) regression introduced during the 3.2
      merge window that causes s2disk to trigger BUG_ON() in
      freeze_workqueues_begin() if there is not enough swap space to save
      the image.
      
      * tag 'pm-fix-for-3.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / Hibernate: Fix s2disk regression related to freezing workqueues
      a51f67a4
    • Ryan Mallon's avatar
      vmwgfx: Fix assignment in vmw_framebuffer_create_handle · bf9c05d5
      Ryan Mallon authored
      The assignment of handle in vmw_framebuffer_create_handle doesn't actually do anything useful and is incorrectly assigning an integer value to a pointer argument. It appears that this is a typo and should be dereferencing handle rather than assigning to it directly. This fixes a bug where an undefined handle value is potentially returned to user-space.
      Signed-off-by: default avatarRyan Mallon <rmallon@gmail.com>
      Reviewed-by: Jakob Bornecrantz<jakob@vmware.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      bf9c05d5
    • Jean Delvare's avatar
      drm/radeon/kms: Fix device tree linkage of i2c buses · 1ffd57c1
      Jean Delvare authored
      Properly set the parent device of i2c buses before registering them so
      that they will show at the right place in the device tree (rather than
      in /sys/devices directly.)
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Cc: Dave Airlie <airlied@gmail.com>
      Reviewed-by: default avatarAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      1ffd57c1