05 Jan, 2012

2 commits


02 Jan, 2012

2 commits


21 Dec, 2011

5 commits

  • Defer LED setting action to a workqueue.
    This is more likely to send all LED change events in a single URB.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • If any userspace program has opened a keyboard device, the input core
    de-activates the keyboard's LEDs upon suspend(). It does this by sending
    individual EV_LED[LED_X]=0 events to the underlying device driver by
    directly calling the driver's registered event() handler.

    The usb-hid driver event() handler processes each request by immediately
    attempting to submit a CTRL URB to turn off the LED. USB URB submission
    is asynchronous. First the URB is added to the head of the ctrl queue.
    Then, if the CTRL_RUNNING flag is false, the URB is submitted immediately
    (and CTRL_RUNNING is set). If the CTRL_RUNNING flag was already true,
    then the newly queued URB is submitted in the ctrl completion handler when
    all previously submitted URBs have completed. When all queued URBs have
    been submitted, the completion handler clears the CTRL_RUNNING flag.

    In the 2-LED suspend case, at input suspend(), 2 LED event CTRL URBs get
    queued, with only the first actually submitted. Soon after input
    suspend() handler finishes, the usb-hid suspend() handler gets called.
    Since this is NOT a PM_EVENT_AUTO suspend, the handler sets
    REPORTED_IDLE, then waits for io to complete.

    Unfortunately, this usually happens while the first LED request is
    actually still being processed. Thus when the completion handler tries
    to submit the second LED request it fails, since REPORTED_IDLE is
    already set! This REPORTED_IDLE check failure causes the completion
    handler to complete, however without clearing the CTRL_RUNNING flag.
    This, in turn, means that the suspend() handler's wait_io() condition
    is never satisfied, and instead it times out after 10 seconds, aborting
    the original system suspend.

    This patch changes the behavior to the following:
    (1) allow completion handler to finish submitting all queued URBs, even if
    REPORTED_IDLE is set. This guarantees that all URBs queued before the
    hid-core suspend() call will be submitted before the system is
    suspended.
    (2) if REPORTED_IDLE is set and the URB queue is empty, queue, but
    don't submit, new URB submission requests. These queued requests get
    submitted when resume() flushes the URB queue. This is similar to the
    existing behavior, however, any requests that arrive while the queue is
    not yet empty will still get submitted before suspend.
    (3) set the RUNNING flag when flushing the URB queue in resume().
    This keeps URBs that were queued in (2) from colliding with any new
    URBs that are being submitted during the resume process. The new URB
    submission requests upon resume get properly queued behind the ones
    being flushed instead of the current situation where they collide,
    causing memory corruption and oopses.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • LED_ON was defined in the original version of the hid-core autosuspend patch.
    However, during review, the setting and clearing of it was redone
    using ledcount. The test was left in accidentally.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • Use macro instead of 0x118 PID in device table.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Add quirk for the Trio Linker Plus II - the adapter supports several
    controllers simultaneously, generating a new HID entry for each connected
    device.

    Signed-off-by: Ignaz Forster
    Signed-off-by: Jiri Kosina

    Ignaz Forster
     

19 Dec, 2011

1 commit


17 Dec, 2011

1 commit

  • ppc6xx_defconfig reveals this:

    drivers/built-in.o: In function `hidinput_cleanup_battery': drivers/hid/hid-input.c:351: undefined reference to`power_supply_unregister'
    drivers/built-in.o: In function `hidinput_setup_battery': drivers/hid/hid-input.c:338: undefined reference to `power_supply_register'
    make[1]: *** [.tmp_vmlinux1] Error 1

    The defconfig in question doens't mention either option and kbuild is
    genertaing

    CONFIG_HID_BATTERY_STRENGTH=y
    CONFIG_POWER_SUPPLY=m

    which is wrong. Put a proper dependency in place.

    Reported-by: Tony Breeds
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

15 Dec, 2011

2 commits

  • This patch modifies hid-multitouch driver for supporting PixArt optical touch
    screen. Because of the device does not have to set initial report, we apply
    "HID_QUIRK_NO_INIT_REPORTS" quirk and add the device into hid_blacklist[]

    Signed-off-by: Aaron Tian
    Signed-off-by: Jiri Kosina

    Aaron Tian
     
  • Most of the parsing errors (typically resulting in device not being claimed
    by HID subsystem at all) are reported only in debugging mode, which makes
    root-causing problems with buggy devices unnecessarily more difficult.

    Convert reporting of important HID report descriptor parsing errors to
    be reported through hid_err() / hid_warn() instead of dbg_hid().

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

12 Dec, 2011

1 commit


06 Dec, 2011

1 commit


05 Dec, 2011

1 commit

  • People with old AMD chips are getting hung boots, because commit
    bcb80e53877c ("x86, microcode, AMD: Add microcode revision to
    /proc/cpuinfo") moved the microcode detection too early into
    "early_init_amd()".

    At that point we are *so* early in the booth that the exception tables
    haven't even been set up yet, so the whole

    rdmsr_safe(MSR_AMD64_PATCH_LEVEL, &c->microcode, &dummy);

    doesn't actually work: if the rdmsr does a GP fault (due to non-existant
    MSR register on older CPU's), we can't fix it up yet, and the boot fails.

    Fix it by simply moving the code to a slightly later point in the boot
    (init_amd() instead of early_init_amd()), since the kernel itself
    doesn't even really care about the microcode patchlevel at this point
    (or really ever: it's made available to user space in /proc/cpuinfo, and
    updated if you do a microcode load).

    Reported-tested-and-bisected-by: Larry Finger
    Tested-by: Bob Tracy
    Acked-by: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Srivatsa S. Bhat
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

04 Dec, 2011

1 commit

  • The idea behind commit d91ee5863b71 ("cpuidle: replace xen access to x86
    pm_idle and default_idle") was to have one call - disable_cpuidle()
    which would make pm_idle not be molested by other code. It disallows
    cpuidle_idle_call to be set to pm_idle (which is excellent).

    But in the select_idle_routine() and idle_setup(), the pm_idle can still
    be set to either: amd_e400_idle, mwait_idle or default_idle. This
    depends on some CPU flags (MWAIT) and in AMD case on the type of CPU.

    In case of mwait_idle we can hit some instances where the hypervisor
    (Amazon EC2 specifically) sets the MWAIT and we get:

    Brought up 2 CPUs
    invalid opcode: 0000 [#1] SMP

    Pid: 0, comm: swapper Not tainted 3.1.0-0.rc6.git0.3.fc16.x86_64 #1
    RIP: e030:[] [] mwait_idle+0x6f/0xb4
    ...
    Call Trace:
    [] cpu_idle+0xae/0xe8
    [] cpu_bringup_and_idle+0xe/0x10
    RIP [] mwait_idle+0x6f/0xb4
    RSP

    In the case of amd_e400_idle we don't get so spectacular crashes, but we
    do end up making an MSR which is trapped in the hypervisor, and then
    follow it up with a yield hypercall. Meaning we end up going to
    hypervisor twice instead of just once.

    The previous behavior before v3.0 was that pm_idle was set to
    default_idle regardless of select_idle_routine/idle_setup.

    We want to do that, but only for one specific case: Xen. This patch
    does that.

    Fixes RH BZ #739499 and Ubuntu #881076
    Reported-by: Stefan Bader
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Linus Torvalds

    Konrad Rzeszutek Wilk
     

03 Dec, 2011

6 commits

  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (21 commits)
    usb: ftdi_sio: add PID for Propox ISPcable III
    Revert "xHCI: reset-on-resume quirk for NEC uPD720200"
    xHCI: fix bug in xhci_clear_command_ring()
    usb: gadget: fsl_udc: fix dequeuing a request in progress
    usb: fsl_mxc_udc.c: Remove compile-time dependency of MX35 SoC type
    usb: fsl_mxc_udc.c: Fix build issue by including missing header file
    USB: fsl_udc_core: use usb_endpoint_xfer_isoc to judge ISO XFER
    usb: udc: Fix gadget driver's speed check in various UDC drivers
    usb: gadget: fix g_serial regression
    usb: renesas_usbhs: fixup driver speed
    usb: renesas_usbhs: fixup gadget.dev.driver when udc_stop.
    usb: renesas_usbhs: fixup signal the driver that cable was disconnected
    usb: renesas_usbhs: fixup device_register timing
    usb: musb: PM: fix context save/restore in suspend/resume path
    USB: linux-cdc-acm.inf: add support for the acm_ms gadget
    EHCI : Fix a regression in the ISO scheduler
    xHCI: reset-on-resume quirk for NEC uPD720200
    USB: whci-hcd: fix endian conversion in qset_clear()
    USB: usb-storage: unusual_devs entry for Kingston DT 101 G2
    usb: option: add SIMCom SIM5218
    ...

    Linus Torvalds
     
  • * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    Staging: comedi: fix integer overflow in do_insnlist_ioctl()
    Revert "Staging: comedi: integer overflow in do_insnlist_ioctl()"
    Staging: comedi: integer overflow in do_insnlist_ioctl()
    Staging: comedi: fix signal handling in read and write
    Staging: comedi: fix mmap_count
    staging: comedi: fix oops for USB DAQ devices.
    staging: comedi: usbduxsigma: Fixed wrong range for the analogue channel.
    staging:rts_pstor:Complete scanning_done variable
    staging: usbip: bugfix for deadlock

    Linus Torvalds
     
  • * 'for-linus' of git://oss.sgi.com/xfs/xfs:
    xfs: fix attr2 vs large data fork assert
    xfs: force buffer writeback before blocking on the ilock in inode reclaim
    xfs: validate acl count

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: Correct General touch PID

    Linus Torvalds
     
  • * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    vmwgfx: integer overflow in vmw_kms_update_layout_ioctl()
    drm/radeon/kms: fix 2D tiling CS support on EG/CM
    drm/radeon/kms: fix scanout of 2D tiled buffers on EG/CM
    drm: Fix lack of CRTC disable for drm_crtc_helper_set_config(.fb=NULL)
    drm/radeon/kms: add some new pci ids
    drm/radeon/kms: Skip ACPI call to ATIF when possible
    drm/radeon/kms: Hide debugging message
    drm/radeon/kms: add some loop timeouts in pageflip code
    drm/nv50/disp: silence compiler warning
    drm/nouveau: fix oopses caused by clear being called on unpopulated ttms
    drm/nouveau: Keep RAMIN heap within the channel.
    drm/nvd0/disp: fix sor dpms typo, preventing dpms on in some situations
    drm/nvc0/gr: fix TP init for transform feedback offset queries
    drm/nouveau: add dumb ioctl support

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LED
    ALSA: hda_intel - revert a quirk that affect VIA chipsets
    ALSA: hda - Avoid touching mute-VREF pin for IDT codecs
    firmware: Sigma: Fix endianess issues
    firmware: Sigma: Skip header during CRC generation
    firmware: Sigma: Prevent out of bounds memory access
    ALSA: usb-audio - Support for Roland GAIA SH-01 Synthesizer
    ASoC: Supply dcs_codes for newer WM1811 revisions
    ASoC: Error out if we can't generate a LRCLK at all for WM8994
    ASoC: Correct name of Speyside Main Speaker widget
    ASoC: skip resume of soc-audio devices without codecs
    ASoC: cs42l51: Fix off-by-one for reg_cache_size
    ASoC: drop support for PlayPaq with WM8510
    ASoC: mpc8610: tell the CS4270 codec that it's the master
    ASoC: cs4720: use snd_soc_cache_sync()
    ASoC: SAMSUNG: Fix build error
    ASoC: max9877: Update register if either val or val2 is changed
    ASoC: Fix wrong define for AD1836_ADC_WORD_OFFSET

    Linus Torvalds
     

02 Dec, 2011

17 commits

  • There are two issues in vmw_kms_update_layout_ioctl(). First, the
    for loop forgets to index rects and only checks the first element.
    Second, there is a potential integer overflow if userspace passes
    in a large arg->num_outputs. The call to kzalloc() would allocate
    a small buffer, leading to out-of-bounds read.

    Reported-by: Haogang Chen
    Signed-off-by: Xi Wang
    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Dave Airlie

    Xi Wang
     
  • Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=43191

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=43191

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Disabling the CRTC by setting its framebuffer to NULL, as used by
    drm_framebuffer_cleanup(), was failing to pass the current framebuffer
    to the crtc_func->disable callback. This is because of the dance within
    drm_crtc_helper_set_config to pass the new_fb (NULL in this case) to the
    drm_crtc_helper_set_mode with the currently attached fb as a parameter.
    drm_crtc_helper_set_mode treats this as a no-op and the encoder is still
    enabled. And so the current fb is forgotten before the call to
    drm_helper_disable_unused_functions.

    This patch treats disabling the CRTC as a simple special case rather
    than adding further complexity into the configuration logic.

    This fixes a pin-leak of the fb bo on Xserver close.

    Signed-off-by: Chris Wilson
    Signed-off-by: Dave Airlie

    Chris Wilson
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (73 commits)
    netfilter: Remove ADVANCED dependency from NF_CONNTRACK_NETBIOS_NS
    ipv4: flush route cache after change accept_local
    sch_red: fix red_change
    Revert "udp: remove redundant variable"
    bridge: master device stuck in no-carrier state forever when in user-stp mode
    ipv4: Perform peer validation on cached route lookup.
    net/core: fix rollback handler in register_netdevice_notifier
    sch_red: fix red_calc_qavg_from_idle_time
    bonding: only use primary address for ARP
    ipv4: fix lockdep splat in rt_cache_seq_show
    sch_teql: fix lockdep splat
    net: fec: Select the FEC driver by default for i.MX SoCs
    isdn: avoid copying too long drvid
    isdn: make sure strings are null terminated
    netlabel: Fix build problems when IPv6 is not enabled
    sctp: better integer overflow check in sctp_auth_create_key()
    sctp: integer overflow in sctp_auth_create_key()
    ipv6: Set mcast_hops to IPV6_DEFAULT_MCASTHOPS when -1 was given.
    net: Fix corruption in /proc/*/net/dev_mcast
    mac80211: fix race between the AGG SM and the Tx data path
    ...

    Linus Torvalds
     
  • firewalld in Fedora 16 needs this.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • After reset ipv4_devconf->data[IPV4_DEVCONF_ACCEPT_LOCAL] to 0,
    we should flush route cache, or it will continue receive packets with local
    source address, which should be dropped.

    Signed-off-by: Weiping Pan
    Signed-off-by: David S. Miller

    Peter Pan(潘卫平)
     
  • Le mercredi 30 novembre 2011 à 14:36 -0800, Stephen Hemminger a écrit :

    > (Almost) nobody uses RED because they can't figure it out.
    > According to Wikipedia, VJ says that:
    > "there are not one, but two bugs in classic RED."

    RED is useful for high throughput routers, I doubt many linux machines
    act as such devices.

    I was considering adding Adaptative RED (Sally Floyd, Ramakrishna
    Gummadi, Scott Shender), August 2001

    In this version, maxp is dynamic (from 1% to 50%), and user only have to
    setup min_th (target average queue size)
    (max_th and wq (burst in linux RED) are automatically setup)

    By the way it seems we have a small bug in red_change()

    if (skb_queue_empty(&sch->q))
    red_end_of_idle_period(&q->parms);

    First, if queue is empty, we should call
    red_start_of_idle_period(&q->parms);

    Second, since we dont use anymore sch->q, but q->qdisc, the test is
    meaningless.

    Oh well...

    [PATCH] sch_red: fix red_change()

    Now RED is classful, we must check q->qdisc->q.qlen, and if queue is empty,
    we start an idle period, not end it.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (31 commits)
    ocfs2: avoid unaligned access to dqc_bitmap
    ocfs2: Use filemap_write_and_wait() instead of write_inode_now()
    ocfs2: honor O_(D)SYNC flag in fallocate
    ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2
    ocfs2: send correct UUID to cleancache initialization
    ocfs2: Commit transactions in error cases -v2
    ocfs2: make direntry invalid when deleting it
    fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc'd data using kmem_cache_free
    ocfs2: Avoid livelock in ocfs2_readpage()
    ocfs2: serialize unaligned aio
    ocfs2: Implement llseek()
    ocfs2: Fix ocfs2_page_mkwrite()
    ocfs2: Add comment about orphan scanning
    ocfs2: Clean up messages in the fs
    ocfs2/cluster: Cluster up now includes network connections too
    ocfs2/cluster: Add new function o2net_fill_node_map()
    ocfs2/cluster: Fix output in file elapsed_time_in_ms
    ocfs2/dlm: dlmlock_remote() needs to account for remastery
    ocfs2/dlm: Take inflight reference count for remotely mastered resources too
    ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()
    ...

    Linus Torvalds
     
  • The dqc_bitmap field of struct ocfs2_local_disk_chunk is 32-bit aligned,
    but not 64-bit aligned. The dqc_bitmap is accessed by ocfs2_set_bit(),
    ocfs2_clear_bit(), ocfs2_test_bit(), or ocfs2_find_next_zero_bit(). These
    are wrapper macros for ext2_*_bit() which need to take an unsigned long
    aligned address (though some architectures are able to handle unaligned
    address correctly)

    So some 64bit architectures may not be able to access the dqc_bitmap
    correctly.

    This avoids such unaligned access by using another wrapper functions for
    ext2_*_bit(). The code is taken from fs/ext4/mballoc.c which also need to
    handle unaligned bitmap access.

    Signed-off-by: Akinobu Mita
    Acked-by: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Joel Becker

    Akinobu Mita
     
  • We need to properly add the hid device to correctly initialize the sysfs state.

    Signed-off-by: K. Y. Srinivasan
    Signed-off-by: Haiyang Zhang
    Reported-by: Fuzhou Chen
    Signed-off-by: Jiri Kosina

    K. Y. Srinivasan
     
  • * 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    ARM: 7182/1: ARM cpu topology: fix warning
    ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below
    ARM: 7180/1: Change kprobes testcase with unpredictable STRD instruction
    ARM: 7177/1: GIC: avoid skipping non-existent PPIs in irq_start calculation
    ARM: 7176/1: cpu_pm: register GIC PM notifier only once
    ARM: 7175/1: add subname parameter to mfp_set_groupg callers
    ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels
    ARM: 7172/1: dma: Drop GFP_COMP for DMA memory allocations
    ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
    ARM: 7170/2: fix compilation breakage in entry-armv.S
    ARM: 7168/1: use cache type functions for arch_get_unmapped_area
    ARM: perf: check that we have a platform device when reserving PMU
    ARM: 7166/1: Use PMD_SHIFT instead of PGDIR_SHIFT in dma-consistent.c
    ARM: 7165/2: PL330: Fix typo in _prepare_ccr()
    ARM: 7163/2: PL330: Only register usable channels
    ARM: 7162/1: errata: tidy up Kconfig options for PL310 errata workarounds
    ARM: 7161/1: errata: no automatic store buffer drain
    ARM: perf: initialise used_mask for fake PMU during validation
    ARM: PMU: remove pmu_init declaration
    ARM: PMU: re-export release_pmu symbol to modules

    Linus Torvalds
     
  • This reverts commit 81d54ec8479a2c695760da81f05b5a9fb2dbe40a.

    If we take the "try_again" goto, due to a checksum error,
    the 'len' has already been truncated. So we won't compute
    the same values as the original code did.

    Reported-by: paul bilke
    Signed-off-by: David S. Miller

    David S. Miller
     
  • …rah/xhci into usb-linus

    * 'for-usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci:
    Revert "xHCI: reset-on-resume quirk for NEC uPD720200"
    xHCI: fix bug in xhci_clear_command_ring()

    Greg Kroah-Hartman
     
  • When in user-stp mode, bridge master do not follow state of its slaves, so
    after the following sequence of events it can stuck forever in no-carrier
    state:
    1) turn stp off
    2) put all slaves down - master device will follow their state and also go in
    no-carrier state
    3) turn stp on with bridge-stp script returning 0 (go to the user-stp mode)
    Now bridge master won't follow slaves' state and will never reach running
    state.

    This patch solves the problem by making user-stp and kernel-stp behavior
    similar regarding master following slaves' states.

    Signed-off-by: Vitalii Demianets
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Vitalii Demianets
     
  • Signed-off-by: Marcin Kościelnicki
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Marcin Kościelnicki