1. 07 1月, 2011 2 次提交
  2. 06 1月, 2011 3 次提交
    • D
      af_unix: Avoid socket->sk NULL OOPS in stream connect security hooks. · 3610cda5
      David S. Miller 提交于
      unix_release() can asynchornously set socket->sk to NULL, and
      it does so without holding the unix_state_lock() on "other"
      during stream connects.
      
      However, the reverse mapping, sk->sk_socket, is only transitioned
      to NULL under the unix_state_lock().
      
      Therefore make the security hooks follow the reverse mapping instead
      of the forward mapping.
      Reported-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Reported-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3610cda5
    • R
      ARM: PL011: add DMA burst threshold support for ST variants · 38d62436
      Russell King 提交于
      ST Micro variants has some specific dma burst threshold compensation,
      which allows them to make better use of a DMA controller.  Add support
      to set this up.
      
      Based on a patch from Linus Walleij.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      38d62436
    • R
      ARM: PL011: Add support for transmit DMA · 68b65f73
      Russell King 提交于
      Add DMA engine support for transmit to the PL011 driver.  Based on a
      patch from Linus Walliej, with the following changes:
      
      - remove RX DMA support.  As PL011 doesn't give us receive timeout
        interrupts, we only get notified of received data when the RX DMA
        has completed.  This rather sucks for interactive use of the TTY.
      
      - remove abuse of completions.  Completions are supposed to be for
        events, not to tell what condition buffers are in.  Replace it with
        a simple 'queued' bool.
      
      - fix locking - it is only safe to access the circular buffer with the
        port lock held.
      
      - only map the DMA buffer when required - if we're ever behind an IOMMU
        this helps keep IOMMU usage down, and also ensures that we're legal
        when we change the scatterlist entry length.
      
      - fix XON/XOFF sending - we must send XON/XOFF characters out as soon
        as possible - waiting for up to 4095 characters in the DMA buffer
        to be sent first is not acceptable.
      
      - fix XON/XOFF receive handling - we need to stop DMA when instructed
        to by the TTY layer, and restart it again when instructed to.  There
        is a subtle problem here: we must not completely empty the circular
        buffer with DMA, otherwise we will not be notified of XON.
      
      - change the 'enable_dma' flag into a 'using DMA' flag, and track
        whether we can use TX DMA by whether the channel pointer is non-NULL.
        This gives us more control over whether we use DMA in the driver.
      
      - we don't need to have the TX DMA buffer continually allocated for
        each port - instead, allocate it when the port starts up, and free
        it when it's shut down.  Update the 'using DMA' flag if we get
        the buffer, and adjust the TTY FIFO size appropriately.
      
      - if we're going to use PIO to send characters, use the existing IRQ
        based functionality rather than reimplementing it.  This also ensures
        we call uart_write_wakeup() at the appropriate time, otherwise we'll
        stall.
      
      - use DMA engine helper functions for type safety.
      
      - fix init when built as a module - we can't have to initcall functions,
        so we must settle on one.  This means we can eliminate the deferred
        DMA initialization.
      
      - there is no need to terminate transfers on a failed prep_slave_sg()
        call - nothing has been setup, so nothing needs to be terminated.
        This avoids a potential deadlock in the DMA engine code
        (tasklet->callback->failed prepare->terminate->tasklet_disable
         which then ends up waiting for the tasklet to finish running.)
      
      - Dan says that the submission callback should not return an error:
        | dma_submit_error() is something I should have removed after commit
        | a0587bcf "ioat1: move descriptor allocation from submit to prep" all
        | errors should be notified by prep failing to return a descriptor
        | handle.  Negative dma_cookie_t values are only returned by the
        | dma_async_memcpy* calls which translate a prep failure into -ENOMEM.
        So remove the error handling at that point.  This also solves the
        potential deadlock mentioned in the previous comment.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      68b65f73
  3. 05 1月, 2011 2 次提交
    • N
      sched: Change wait_for_completion_*_timeout() to return a signed long · 6bf41237
      NeilBrown 提交于
      wait_for_completion_*_timeout() can return:
      
         0: if the wait timed out
       -ve: if the wait was interrupted
       +ve: if the completion was completed.
      
      As they currently return an 'unsigned long', the last two cases
      are not easily distinguished which can easily result in buggy
      code, as is the case for the recently added
      wait_for_completion_interruptible_timeout() call in
      net/sunrpc/cache.c
      
      So change them both to return 'long'.  As MAX_SCHEDULE_TIMEOUT
      is LONG_MAX, a large +ve return value should never overflow.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: J.  Bruce Fields <bfields@fieldses.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <20110105125016.64ccab0e@notabene.brown>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6bf41237
    • F
      net: typos in comments in include/linux/igmp.h · 7b26e5eb
      Francois-Xavier Le Bail 提交于
      There are typos in comments in include/linux/igmp.h:
      
      83 #define IGMP_HOST_MEMBERSHIP_QUERY      0x11    /* From RFC1112 */
      84 #define IGMP_HOST_MEMBERSHIP_REPORT     0x12    /* Ditto */
      [snip]
      88 #define IGMPV2_HOST_MEMBERSHIP_REPORT   0x16    /* V2 version of 0x11 */
      89 #define IGMP_HOST_LEAVE_MESSAGE         0x17
      90 #define IGMPV3_HOST_MEMBERSHIP_REPORT   0x22    /* V3 version of 0x11 */
      
      The line 88 and 90 are about REPORT messages.
      The IGMP_HOST_MEMBERSHIP_REPORT (IGMP V1) value is 0x12.
      So the comment on line 88 must be /* V2 version of 0x12 */,
      and the comment on line 90 must be /* V3 version of 0x12 */.
      Signed-off-by: NFrancois-Xavier Le Bail <fx.lebail@orange.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7b26e5eb
  4. 04 1月, 2011 1 次提交
  5. 03 1月, 2011 1 次提交
  6. 02 1月, 2011 5 次提交
  7. 01 1月, 2011 4 次提交
    • S
      dcbnl: adding DCBX feature flags get-set · ea45fe4e
      Shmulik Ravid 提交于
      Adding a pair of set-get routines to dcbnl for setting the negotiation
      flags of the various DCB features. Conforms to the CEE flavor of DCBX
      The user sets these flags (enable, advertise, willing) for each feature
      to be used by the DCBX engine. The 'get' routine returns which of the
      features is enabled after the negotiation.
      
      This patch is dependent on the following patches:
      [net-next-2.6 PATCH 1/3] dcbnl: add support for ieee8021Qaz attributes
      [net-next-2.6 PATCH 2/3] dcbnl: add appliction tlv handlers
      [net-next-2.6 PATCH 3/3] net_dcb: add application notifiers
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea45fe4e
    • S
      dcbnl: adding DCBX engine capability · 6241b625
      Shmulik Ravid 提交于
      Adding an optional DCBX capability and a pair for get-set routines for
      setting the device DCBX mode. The DCBX capability is a bit field of
      supported attributes. The user is expected to set the DCBX mode with a
      subset of the advertised attributes.
      
      This patch is dependent on the following patches:
      [net-next-2.6 PATCH 1/3] dcbnl: add support for ieee8021Qaz attributes
      [net-next-2.6 PATCH 2/3] dcbnl: add appliction tlv handlers
      [net-next-2.6 PATCH 3/3] net_dcb: add application notifiers
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Acked-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6241b625
    • J
      dcbnl: add appliction tlv handlers · 9ab933ab
      John Fastabend 提交于
      This patch adds application tlv handlers. Networking stacks
      may use the application priority to set the skb priority of
      their stack using the negoatiated dcbx priority.
      
      This patch provides the dcb_{get|set}app() routines for the
      stack to query these parameters. Notice lower layer drivers
      can use the dcbnl_ops routines if additional handling is
      needed. Perhaps in the firmware case for example
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NShmulik Ravid <shmulikr@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9ab933ab
    • J
      dcbnl: add support for ieee8021Qaz attributes · 3e29027a
      John Fastabend 提交于
      The IEEE8021Qaz is the IEEE standard version of CEE. The
      standard has had enough significant changes from the CEE
      version that many of the CEE attributes have no meaning
      in the new spec or do not easily map to IEEE standards.
      
      Rather then attempt to create a complicated mapping
      between CEE and IEEE standards this patch adds a nested
      IEEE attribute to the list of DCB attributes. The policy
      is,
      
      	[DCB_ATTR_IFNAME]
      	[DCB_ATTR_STATE]
      	...
      	[DCB_ATTR_IEEE]
      		[DCB_ATTR_IEEE_ETS]
      		[DCB_ATTR_IEEE_PFC]
      		[DCB_ATTR_IEEE_APP_TABLE]
      			[DCB_ATTR_IEEE_APP]
      			...
      
      The following dcbnl_rtnl_ops routines were added to handle
      the IEEE standard,
      
      	int (*ieee_getets) (struct net_device *, struct ieee_ets *);
      	int (*ieee_setets) (struct net_device *, struct ieee_ets *);
      	int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
      	int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
      	int (*ieee_getapp) (struct net_device *, struct dcb_app *);
      	int (*ieee_setapp) (struct net_device *, struct dcb_app *);
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3e29027a
  8. 30 12月, 2010 1 次提交
  9. 29 12月, 2010 5 次提交
  10. 23 12月, 2010 4 次提交
    • J
      taskstats: pad taskstats netlink response for aligment issues on ia64 · 4be2c95d
      Jeff Mahoney 提交于
      The taskstats structure is internally aligned on 8 byte boundaries but the
      layout of the aggregrate reply, with two NLA headers and the pid (each 4
      bytes), actually force the entire structure to be unaligned.  This causes
      the kernel to issue unaligned access warnings on some architectures like
      ia64.  Unfortunately, some software out there doesn't properly unroll the
      NLA packet and assumes that the start of the taskstats structure will
      always be 20 bytes from the start of the netlink payload.  Aligning the
      start of the taskstats structure breaks this software, which we don't
      want.  So, for now the alignment only happens on architectures that
      require it and those users will have to update to fixed versions of those
      packages.  Space is reserved in the packet only when needed.  This ifdef
      should be removed in several years e.g.  2012 once we can be confident
      that fixed versions are installed on most systems.  We add the padding
      before the aggregate since the aggregate is already a defined type.
      
      Commit 85893120 ("delayacct: align to 8 byte boundary on 64-bit systems")
      previously addressed the alignment issues by padding out the pid field.
      This was supposed to be a compatible change but the circumstances
      described above mean that it wasn't.  This patch backs out that change,
      since it was a hack, and introduces a new NULL attribute type to provide
      the padding.  Padding the response with 4 bytes avoids allocating an
      aligned taskstats structure and copying it back.  Since the structure
      weighs in at 328 bytes, it's too big to do it on the stack.
      Signed-off-by: NJeff Mahoney <jeffm@suse.com>
      Reported-by: NBrian Rogers <brian@xyzw.org>
      Cc: Jeff Mahoney <jeffm@suse.com>
      Cc: Guillaume Chazarain <guichaz@gmail.com>
      Cc: Balbir Singh <balbir@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4be2c95d
    • W
      include/linux/unaligned: pack the whole struct rather than just the field · 4e06fd14
      Will Newton 提交于
      The current packed struct implementation of unaligned access adds the
      packed attribute only to the field within the unaligned struct rather than
      to the struct as a whole.  This is not sufficient to enforce proper
      behaviour on architectures with a default struct alignment of more than
      one byte.
      
      For example, the current implementation of __get_unaligned_cpu16 when
      compiled for arm with gcc -O1 -mstructure-size-boundary=32 assumes the
      struct is on a 4 byte boundary so performs the load of the 16bit packed
      field as if it were on a 4 byte boundary:
      
      __get_unaligned_cpu16:
              ldrh    r0, [r0, #0]
              bx      lr
      
      Moving the packed attribute to the struct rather than the field causes the
      proper unaligned access code to be generated:
      
      __get_unaligned_cpu16:
      	ldrb	r3, [r0, #0]	@ zero_extendqisi2
      	ldrb	r0, [r0, #1]	@ zero_extendqisi2
      	orr	r0, r3, r0, asl #8
      	bx	lr
      Signed-off-by: NWill Newton <will.newton@gmail.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4e06fd14
    • D
      x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR · 4a7863cc
      Don Zickus 提交于
      The x86 arch has shifted its use of the nmi_watchdog from a
      local implementation to the global one provide by
      kernel/watchdog.c.  This shift has caused a whole bunch of
      compile problems under different config options.  I attempt to
      simplify things with the patch below.
      
      In order to simplify things, I had to come to terms with the
      meaning of two terms ARCH_HAS_NMI_WATCHDOG and
      CONFIG_HARDLOCKUP_DETECTOR.  Basically they mean the same thing,
      the former on a local level and the latter on a global level.
      
      With the old x86 nmi watchdog gone, there is no need to rely on
      defining the ARCH_HAS_NMI_WATCHDOG variable because it doesn't
      make sense any more.  x86 will now use the global
      implementation.
      
      The changes below do a few things.  First it changes the few
      places that relied on ARCH_HAS_NMI_WATCHDOG to use
      CONFIG_X86_LOCAL_APIC (the former was an alias for the latter
      anyway, so nothing unusual here).  Those pieces of code were
      relying more on local apic functionality the nmi watchdog
      functionality, so the change should make sense.
      
      Second, I removed the x86 implementation of
      touch_nmi_watchdog().  It isn't need now, instead x86 will rely
      on kernel/watchdog.c's implementation.
      
      Third, I removed the #define ARCH_HAS_NMI_WATCHDOG itself from
      x86.  And tweaked the include/linux/nmi.h file to tell users to
      look for an externally defined touch_nmi_watchdog in the case of
      ARCH_HAS_NMI_WATCHDOG _or_ CONFIG_HARDLOCKUP_DETECTOR. This
      changes removes some of the ugliness in that file.
      
      Finally, I added a Kconfig dependency for
      CONFIG_HARDLOCKUP_DETECTOR that said you can't have
      ARCH_HAS_NMI_WATCHDOG _and_ CONFIG_HARDLOCKUP_DETECTOR.  You can
      only have one nmi_watchdog.
      
      Tested with
      ARCH=i386: allnoconfig, defconfig, allyesconfig, (various broken
      configs) ARCH=x86_64: allnoconfig, defconfig, allyesconfig,
      (various broken configs)
      
      Hopefully, after this patch I won't get any more compile broken
      emails. :-)
      
      v3:
        changed a couple of 'linux/nmi.h' -> 'asm/nmi.h' to pick-up correct function
        prototypes when CONFIG_HARDLOCKUP_DETECTOR is not set.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: fweisbec@gmail.com
      LKML-Reference: <1293044403-14117-1-git-send-email-dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4a7863cc
    • J
      Keyboard: omap-keypad: use matrix_keypad.h · da1f026b
      Janusz Krzysztofik 提交于
      Most keypad drivers make use of the <linux/input/matrix_keypad.h>
      defined macros, structures and inline functions.
      
      Convert omap-keypad driver to use those as well, as suggested by a
      compile time warning, hardcoded into the OMAP <palt/keypad.h>.
      
      Created against linux-2.6.37-rc5.
      Tested on Amstrad Delta.
      Compile tested with omap1_defconfig and omap2plus_defconfig shrinked to
      board-h4.
      Signed-off-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Reviewed-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      Acked-by: NDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      da1f026b
  11. 22 12月, 2010 1 次提交
  12. 21 12月, 2010 5 次提交
  13. 20 12月, 2010 3 次提交
  14. 18 12月, 2010 3 次提交