]> Git Repo - linux.git/log
linux.git
10 years agoMerge remote-tracking branches 'regulator/topic/axp20x', 'regulator/topic/da9211...
Mark Brown [Sun, 8 Feb 2015 03:16:23 +0000 (11:16 +0800)]
Merge remote-tracking branches 'regulator/topic/axp20x', 'regulator/topic/da9211' and 'regulator/topic/fan53555' into regulator-next

10 years agoMerge remote-tracking branch 'regulator/topic/dt-cb' into regulator-next
Mark Brown [Sun, 8 Feb 2015 03:16:22 +0000 (11:16 +0800)]
Merge remote-tracking branch 'regulator/topic/dt-cb' into regulator-next

10 years agoMerge remote-tracking branch 'regulator/topic/core' into regulator-next
Mark Brown [Sun, 8 Feb 2015 03:16:21 +0000 (11:16 +0800)]
Merge remote-tracking branch 'regulator/topic/core' into regulator-next

10 years agoMerge remote-tracking branch 'regulator/fix/qcom-rpm' into regulator-linus
Mark Brown [Sun, 8 Feb 2015 03:16:18 +0000 (11:16 +0800)]
Merge remote-tracking branch 'regulator/fix/qcom-rpm' into regulator-linus

10 years agoMerge tag 'regulator-v3.19-rc7' into regulator-linus
Mark Brown [Sun, 8 Feb 2015 03:16:17 +0000 (11:16 +0800)]
Merge tag 'regulator-v3.19-rc7' into regulator-linus

regulator: Fix !REGULATOR builds of systems using system suspend calls

The system suspend calls (used to synchronize between system suspend of
the CPU and it's PMIC) are called from board code but not stubbed when
regulator is disabled causing build failures in such cases.  This patch
fixes those build failures.

# gpg: Signature made Thu 05 Feb 2015 05:10:43 HKT using RSA key ID 5D5487D0
# gpg: WARNING: digest algorithm MD5 is deprecated
# gpg: please see http://www.gnupg.org/faq/weak-digest-algos.html for more information
# gpg: Oops: keyid_from_fingerprint: no pubkey
# gpg: key AF88CD16: no public key for trusted key - skipped
# gpg: key AF88CD16 marked as ultimately trusted
# gpg: key 5621E907: no public key for trusted key - skipped
# gpg: key 5621E907 marked as ultimately trusted
# gpg: Good signature from "Mark Brown <[email protected]>"
# gpg:                 aka "Mark Brown <[email protected]>"
# gpg:                 aka "Mark Brown <[email protected]>"
# gpg:                 aka "Mark Brown <[email protected]>"
# gpg:                 aka "Mark Brown <[email protected]>"
# gpg:                 aka "Mark Brown <[email protected]>"

10 years agoMerge remote-tracking branches 'regmap/topic/ac97', 'regmap/topic/doc' and 'regmap...
Mark Brown [Sun, 8 Feb 2015 03:16:11 +0000 (11:16 +0800)]
Merge remote-tracking branches 'regmap/topic/ac97', 'regmap/topic/doc' and 'regmap/topic/smbus' into regmap-next

10 years agoMerge remote-tracking branch 'regmap/topic/core' into regmap-next
Mark Brown [Sun, 8 Feb 2015 03:16:10 +0000 (11:16 +0800)]
Merge remote-tracking branch 'regmap/topic/core' into regmap-next

10 years agoASoC: core: indicate unregister debug message once
Kuninori Morimoto [Thu, 5 Feb 2015 05:34:10 +0000 (05:34 +0000)]
ASoC: core: indicate unregister debug message once

Current snd_soc_unregister_card() indicates unregistered debug
message when it was called. But, it should be called only when
it was really unregistered.

Signed-off-by: Kuninori Morimoto <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
10 years agoASoC: intel: sst-haswell-ipc: Remove unused functions
Rickard Strandqvist [Sat, 17 Jan 2015 23:38:46 +0000 (00:38 +0100)]
ASoC: intel: sst-haswell-ipc: Remove unused functions

Removes some functions that are not used anywhere:
sst_hsw_stream_unmute() sst_hsw_stream_mute() msg_set_stage_type()
sst_hsw_dx_get_state() sst_hsw_stream_set_write_position()
sst_hsw_stream_get_vol_reg() sst_hsw_stream_get_peak_reg()
sst_hsw_stream_get_pointer_reg() sst_hsw_stream_get_read_reg()
sst_hsw_stream_get_mixer_id() sst_hsw_stream_get_hw_id()
sst_hsw_mixer_set_volume_curve() sst_hsw_mixer_unmute()
sst_hsw_mixer_mute() sst_hsw_stream_set_volume_curve()

This was partially found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
10 years agoASoC: Intel: sst: Fix firmware name size handling
Christian Engelmayer [Sat, 7 Feb 2015 22:40:52 +0000 (23:40 +0100)]
ASoC: Intel: sst: Fix firmware name size handling

Function sst_acpi_probe() uses plain strcpy for setting member firmware_name
of a struct intel_sst_drv from member firmware of a struct sst_machines.
Thereby the destination array has got a length of 20 byte while the source may
hold 32 byte. Since eg. commit 64b9c90b8600 ("ASoC: Intel: Fix BYTCR firmware
name") increased strings from "fw_sst_0f28.bin" to "intel/fw_sst_0f28.bin"
there is an actual possibility that the 20 byte array at the end of struct
intel_sst_drv is overrun.

Thus increase the size of the destination and use the same define for both
structs. Detected by Coverity CID 1260087.

Signed-off-by: Christian Engelmayer <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]
10 years agox86/tlb/trace: Do not trace on CPU that is offline
Steven Rostedt (Red Hat) [Fri, 6 Feb 2015 19:18:19 +0000 (14:18 -0500)]
x86/tlb/trace: Do not trace on CPU that is offline

When taking a CPU down for suspend and resume, a tracepoint may be called
when the CPU has been designated offline. As tracepoints require RCU for
protection, they must not be called if the current CPU is offline.

Unfortunately, trace_tlb_flush() is called in this scenario as was noted
by LOCKDEP:

...

 Disabling non-boot CPUs ...
 intel_pstate CPU 1 exiting

 ===============================
 smpboot: CPU 1 didn't die...
 [ INFO: suspicious RCU usage. ]
 3.19.0-rc7-next-20150204.1-iniza-small #1 Not tainted
 -------------------------------
 include/trace/events/tlb.h:35 suspicious rcu_dereference_check() usage!

 other info that might help us debug this:

 RCU used illegally from offline CPU!
 rcu_scheduler_active = 1, debug_locks = 0
 no locks held by swapper/1/0.

 stack backtrace:
 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.19.0-rc7-next-20150204.1-iniza-small #1
 Hardware name: SAMSUNG ELECTRONICS CO., LTD. 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
  0000000000000001 ffff88011a44fe18 ffffffff817e370d 0000000000000011
  ffff88011a448290 ffff88011a44fe48 ffffffff810d6847 ffff8800c66b9600
  0000000000000001 ffff88011a44c000 ffffffff81cb3900 ffff88011a44fe78
 Call Trace:
  [<ffffffff817e370d>] dump_stack+0x4c/0x65
  [<ffffffff810d6847>] lockdep_rcu_suspicious+0xe7/0x120
  [<ffffffff810b71a5>] idle_task_exit+0x205/0x2c0
  [<ffffffff81054c4e>] play_dead_common+0xe/0x50
  [<ffffffff81054ca5>] native_play_dead+0x15/0x140
  [<ffffffff8102963f>] arch_cpu_idle_dead+0xf/0x20
  [<ffffffff810cd89e>] cpu_startup_entry+0x37e/0x580
  [<ffffffff81053e20>] start_secondary+0x140/0x150
 intel_pstate CPU 2 exiting

...

By converting the tlb_flush tracepoint to a TRACE_EVENT_CONDITION where the
condition is cpu_online(smp_processor_id()), we can avoid calling RCU protected
code when the CPU is offline.

Link: http://lkml.kernel.org/r/CA+icZUUGiGDoL5NU8RuxKzFjoLjEKRtUWx=JB8B9a0EQv-eGzQ@mail.gmail.com
Cc: [email protected] # 3.17+
Fixes: d17d8f9dedb9 "x86/mm: Add tracepoints for TLB flushes"
Reported-by: Sedat Dilek <[email protected]>
Tested-by: Sedat Dilek <[email protected]>
Suggested-by: Paul E. McKenney <[email protected]>
Acked-by: Paul E. McKenney <[email protected]>
Acked-by: Dave Hansen <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
10 years agotracing: Add condition check to RCU lockdep checks
Steven Rostedt (Red Hat) [Fri, 6 Feb 2015 19:30:50 +0000 (14:30 -0500)]
tracing: Add condition check to RCU lockdep checks

The trace_tlb_flush() tracepoint can be called when a CPU is going offline.
When a CPU is offline, RCU is no longer watching that CPU and since the
tracepoint is protected by RCU, it must not be called. To prevent the
tlb_flush tracepoint from being called when the CPU is offline, it was
converted to a TRACE_EVENT_CONDITION where the condition checks if the
CPU is online before calling the tracepoint.

Unfortunately, this was not enough to stop lockdep from complaining about
it. Even though the RCU protected code of the tracepoint will never be
called, the condition is hidden within the tracepoint, and even though the
condition prevents RCU code from being called, the lockdep checks are
outside the tracepoint (this is to test tracepoints even when they are not
enabled).

Even though tracepoints should be checked to be RCU safe when they are not
enabled, the condition should still be considered when checking RCU.

Link: http://lkml.kernel.org/r/CA+icZUUGiGDoL5NU8RuxKzFjoLjEKRtUWx=JB8B9a0EQv-eGzQ@mail.gmail.com
Fixes: 3a630178fd5f "tracing: generate RCU warnings even when tracepoints are disabled"
Cc: [email protected] # 3.18+
Acked-by: Dave Hansen <[email protected]>
Reported-by: Sedat Dilek <[email protected]>
Tested-by: Sedat Dilek <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
10 years agoMerge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Sat, 7 Feb 2015 19:10:40 +0000 (11:10 -0800)]
Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

Pull one more infiniband revert from Roland Dreier:
 "One more last-second RDMA change for 3.19: Yann realized that the
  previous revert of new userspace ABI did not go far enough, and we're
  still exposing a change that we don't want.  Revert even closer to
  3.18 interface to make sure we get things right in the long run"

Yann Droneaud pipes up:
 "I hope this could go in v3.19 as, at this stage, we don't want to
  expose any bits of this ABI in a released kernel"

* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  Revert "IB/core: Add support for extended query device caps"

10 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
Linus Torvalds [Sat, 7 Feb 2015 19:04:48 +0000 (11:04 -0800)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs

Pull btrfs fix from Chris Mason:
 "Forrest Liu tracked down a missing blk_finish_plug in the btrfs
  logging code.  This isn't a new bug, and it's hard to hit.  But, it's
  safe enough for inclusion now, and in my for-linus branch"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
  Btrfs: add missing blk_finish_plug in btrfs_sync_log()

10 years agoMerge branch 'pci/misc' into next
Bjorn Helgaas [Sat, 7 Feb 2015 14:22:24 +0000 (08:22 -0600)]
Merge branch 'pci/misc' into next

* pci/misc:
  PCI: Add pci_device_to_OF_node() stub for !CONFIG_OF

10 years agoASoC: samsung: Remove goni or aquila with the WM8994
Paul Bolle [Mon, 19 Jan 2015 10:41:41 +0000 (11:41 +0100)]
ASoC: samsung: Remove goni or aquila with the WM8994

Commit 28c8331d386a ("ARM: S5PV210: Remove support for board files")
removed the Kconfig symbols MACH_GONI and MACH_AQUILA. As a result the
dependencies of SND_SOC_GONI_AQUILA_WM8994 can never be met. So remove
the unbuildable "SoC I2S Audio support for AQUILA/GONI - WM8994".

Signed-off-by: Paul Bolle <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
10 years agoInput: elan_i2c - fix wrong %p extension
Rasmus Villemoes [Fri, 6 Feb 2015 16:39:20 +0000 (08:39 -0800)]
Input: elan_i2c - fix wrong %p extension

There's no %px extension. From the context I think the intention was to
dump the five bytes which were not as expected, and for that one should use
%ph.

Signed-off-by: Rasmus Villemoes <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
10 years agorhashtable: Fix remove logic to avoid cross references between buckets
Thomas Graf [Fri, 6 Feb 2015 16:08:43 +0000 (16:08 +0000)]
rhashtable: Fix remove logic to avoid cross references between buckets

The remove logic properly searched the remaining chain for a matching
entry with an identical hash but it did this while searching from both
the old and new table. Instead in order to not leave stale references
behind we need to:

 1. When growing and searching from the new table:
    Search remaining chain for entry with same hash to avoid having
    the new table directly point to a entry with a different hash.

 2. When shrinking and searching from the old table:
    Check if the element after the removed would create a cross
    reference and avoid it if so.

These bugs were present from the beginning in nft_hash.

Also, both insert functions calculated the hash based on the mask of
the new table. This worked while growing. Wwhile shrinking, the mask
of the inew table is smaller than the mask of the old table. This lead
to a bit not being taken into account when selecting the bucket lock
and thus caused the wrong bucket to be locked eventually.

Fixes: 7e1e77636e36 ("lib: Resizable, Scalable, Concurrent Hash Table")
Fixes: 97defe1ecf86 ("rhashtable: Per bucket locks & deferred expansion/shrinking")
Reported-by: Ying Xue <[email protected]>
Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoMerge branch 'rhashtable-next'
David S. Miller [Fri, 6 Feb 2015 23:18:39 +0000 (15:18 -0800)]
Merge branch 'rhashtable-next'

Thomas Graf says:

====================
rhashtable fixes

This series fixes all remaining known issues with rhashtable that
have been reported. In particular the race condition reported by
Ying Xue.
====================

Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: Avoid bucket cross reference after removal
Thomas Graf [Thu, 5 Feb 2015 01:03:36 +0000 (02:03 +0100)]
rhashtable: Avoid bucket cross reference after removal

During a resize, when two buckets in the larger table map to
a single bucket in the smaller table and the new table has already
been (partially) linked to the old table. Removal of an element
may result the bucket in the larger table to point to entries
which all hash to a different value than the bucket index. Thus
causing two buckets to point to the same sub chain after unzipping.
This is not illegal *during* the resize phase but after it has
completed.

Keep the old table around until all of the unzipping is done to
allow the removal code to only search for matching hashed entries
during this special period.

Reported-by: Ying Xue <[email protected]>
Fixes: 97defe1ecf86 ("rhashtable: Per bucket locks & deferred expansion/shrinking")
Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: Add more lock verification
Thomas Graf [Thu, 5 Feb 2015 01:03:35 +0000 (02:03 +0100)]
rhashtable: Add more lock verification

Catch hash miscalculations which result in hard to track down race
conditions.

Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: Dump bucket tables on locking violation under PROVE_LOCKING
Thomas Graf [Thu, 5 Feb 2015 01:03:34 +0000 (02:03 +0100)]
rhashtable: Dump bucket tables on locking violation under PROVE_LOCKING

This simplifies debugging of locking violations if compiled with
CONFIG_PROVE_LOCKING.

Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: Wait for RCU readers after final unzip work
Thomas Graf [Thu, 5 Feb 2015 01:03:33 +0000 (02:03 +0100)]
rhashtable: Wait for RCU readers after final unzip work

We need to wait for all RCU readers to complete after the last bit of
unzipping has been completed. Otherwise the old table is freed up
prematurely.

Fixes: 7e1e77636e36 ("lib: Resizable, Scalable, Concurrent Hash Table")
Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: Use a single bucket lock for sibling buckets
Thomas Graf [Thu, 5 Feb 2015 01:03:32 +0000 (02:03 +0100)]
rhashtable: Use a single bucket lock for sibling buckets

rhashtable currently allows to use a bucket lock per bucket. This
requires multiple levels of complicated nested locking because when
resizing, a single bucket of the smaller table will map to two
buckets in the larger table. So far rhashtable has explicitly locked
both buckets in the larger table.

By excluding the highest bit of the hash from the bucket lock map and
thus only allowing locks to buckets in a ratio of 1:2, the locking
can be simplified a lot without losing the benefits of multiple locks.
Larger tables which benefit from multiple locks will not have a single
lock per bucket anyway.

Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agorhashtable: key_hashfn() must return full hash value
Thomas Graf [Thu, 5 Feb 2015 01:03:31 +0000 (02:03 +0100)]
rhashtable: key_hashfn() must return full hash value

The value computed by key_hashfn() is used by rhashtable_lookup_compare()
to traverse both tables during a resize. key_hashfn() must therefore
return the hash value without the buckets mask applied so it can be
masked to the size of each individual table.

Fixes: 97defe1ecf86 ("rhashtable: Per bucket locks & deferred expansion/shrinking")
Signed-off-by: Thomas Graf <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoASoC: max98357a: Add MAX98357A codec driver
Kenneth Westfield [Thu, 5 Feb 2015 20:53:40 +0000 (12:53 -0800)]
ASoC: max98357a: Add MAX98357A codec driver

Add codec driver for the Maxim MAX98357A DAC.

Signed-off-by: Kenneth Westfield <[email protected]>
Acked-by: Banajit Goswami <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
10 years agoASoC: max98357a: Document MAX98357A bindings
Kenneth Westfield [Thu, 5 Feb 2015 20:53:38 +0000 (12:53 -0800)]
ASoC: max98357a: Document MAX98357A bindings

Add documentation to the sound directory of the
device-tree bindings for the Maxim MAX98357A audio
DAC.

Signed-off-by: Kenneth Westfield <[email protected]>
Acked-by: Banajit Goswami <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
10 years agoMerge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of git://git...
Linus Torvalds [Fri, 6 Feb 2015 21:56:02 +0000 (13:56 -0800)]
Merge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer and x86 fix from Ingo Molnar:
 "A CLOCK_TAI early expiry fix and an x86 microcode driver oops fix"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  hrtimer: Fix incorrect tai offset calculation for non high-res timer systems

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, microcode: Return error from driver init code when loader is disabled

10 years agointel_pstate: provide option to only use intel_pstate with HWP
Kristen Carlson Accardi [Fri, 6 Feb 2015 21:41:55 +0000 (13:41 -0800)]
intel_pstate: provide option to only use intel_pstate with HWP

Allow users the option to disable the driver for any hardware
which does not support HWP.

Signed-off-by: Kristen Carlson Accardi <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoMerge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Fri, 6 Feb 2015 21:34:26 +0000 (13:34 -0800)]
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar:
 "Misc fixes"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched/deadline: Fix deadline parameter modification handling
  sched/wait: Remove might_sleep() from wait_event_cmd()
  sched: Fix crash if cpuset_cpumask_can_shrink() is passed an empty cpumask
  sched/fair: Avoid using uninitialized variable in preferred_group_nid()

10 years agoMerge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Fri, 6 Feb 2015 21:06:10 +0000 (13:06 -0800)]
Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull core kernel fixes from Ingo Molnar:
 "Two liblockdep fixes and a CPU hotplug race fix"

* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  tools/liblockdep: don't include host headers
  tools/liblockdep: ignore generated .so file
  smpboot: Add missing get_online_cpus() in smpboot_register_percpu_thread()

10 years agoipv6: addrconf: add missing validate_link_af handler
Daniel Borkmann [Thu, 5 Feb 2015 13:39:11 +0000 (14:39 +0100)]
ipv6: addrconf: add missing validate_link_af handler

We still need a validate_link_af() handler with an appropriate nla policy,
similarly as we have in IPv4 case, otherwise size validations are not being
done properly in that case.

Fixes: f53adae4eae5 ("net: ipv6: add tokenized interface identifier support")
Fixes: bc91b0f07ada ("ipv6: addrconf: implement address generation modes")
Cc: Jiri Pirko <[email protected]>
Signed-off-by: Daniel Borkmann <[email protected]>
Acked-by: Jiri Pirko <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoMerge tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Linus Torvalds [Fri, 6 Feb 2015 20:50:37 +0000 (12:50 -0800)]
Merge tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Hopefully the final pull request for 3.19: this ended up with a
  slightly higher volume than wished, but I put them all as they are
  either stable or 3.19 regression fixes.

  Most of commits are from ASoC, and have been stewed for a while in
  linux-next.  The only change in the common code is the regression
  fixes for ASoC AC97 stuff wrt device registrations.  The rest are
  device-specific, mostly small fixes in various ASoC drivers and ak411x
  on ice1724 boards"

* tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ASoC: Intel: fix sst firmware path for cht-bsw-rt5672
  ARM: dts: Fix I2S1, I2S2 compatible for exynos4 SoCs
  ASoC: sgtl5000: add delay before first I2C access
  MAINTAINERS: ASoC: add maintainer for Intel BDW/HSW ASoC driver
  ASoC: atmel_ssc_dai: fix the setting for DSP mode
  ASoC: sgtl5000: Use shift mask when setting codec mode
  ASoC: tlv320aic3x: Fix data delay configuration
  ALSA: ak411x: Fix stall in work callback
  ASoC: Intel: Used lock version to update shim registers
  ASoC: wm8731: init mutex in i2c init path
  ASoC: atmel_ssc_dai: fix start event for I2S mode
  ASoC: rt5640: Add RT5642 ACPI ID for Intel Baytrail
  ASoC: wm97xx: Reset AC'97 device before registering it
  ASoC: Add support for allocating AC'97 device before registering it

10 years agonet: sxgbe: fix error handling in init_rx_ring()
Dan Carpenter [Thu, 5 Feb 2015 08:00:42 +0000 (11:00 +0300)]
net: sxgbe: fix error handling in init_rx_ring()

There are a couple bugs with the error handling in this function.

1) If we can't allocate "rx_ring->rx_skbuff" then we should call
   dma_free_coherent() but we don't.
2) free_rx_ring() frees "rx_ring->rx_skbuff_dma" and "rx_ring->rx_skbuff"
   so calling it in a loop causes a double free.

Also it was a bit confusing how we sometimes freed things before doing
the goto.  I've cleaned it up so it does error handling in normal kernel
style.

Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agolivepatch: add missing newline to error message
Josh Poimboeuf [Fri, 6 Feb 2015 16:36:32 +0000 (10:36 -0600)]
livepatch: add missing newline to error message

Signed-off-by: Josh Poimboeuf <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
10 years agoMerge branch 'akpm' (patches from Andrew Morton)
Linus Torvalds [Fri, 6 Feb 2015 16:52:53 +0000 (08:52 -0800)]
Merge branch 'akpm' (patches from Andrew Morton)

Merge misc fixes from Andrew Morton:
 "7 fixes"

* emailed patches from Andrew Morton <[email protected]>:
  mm/debug_pagealloc: fix build failure on ppc and some other archs
  nilfs2: fix deadlock of segment constructor over I_SYNC flag
  MAINTAINERS: remove SUPERH website
  memcg, shmem: fix shmem migration to use lrucare
  mm: export "high_memory" symbol on !MMU
  .mailmap: update Konstantin Khlebnikov's email address
  mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range

10 years agoMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Linus Torvalds [Fri, 6 Feb 2015 16:28:54 +0000 (08:28 -0800)]
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus

Pull MIPS fixes from Ralf Baechle:
 "The pending MIPS fixes for 3.19.  All across the field and nothing
  particularly severe or dramatic"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (23 commits)
  IRQCHIP: mips-gic: Avoid rerouting timer IRQs for smp-cmp
  MIPS: Fix syscall_get_nr for the syscall exit tracing.
  MIPS: elf2ecoff: Ignore PT_MIPS_ABIFLAGS program headers.
  MIPS: elf2ecoff: Rewrite main processing loop to switch.
  MIPS: fork: Fix MSA/FPU/DSP context duplication race
  MIPS: Fix C0_Pagegrain[IEC] support.
  MIPS: traps: Fix inline asm ctc1 missing .set hardfloat
  MIPS: mipsregs.h: Add write_32bit_cp1_register()
  MIPS: Fix kernel lockup or crash after CPU offline/online
  MIPS: OCTEON: fix kernel crash when offlining a CPU
  MIPS: ARC: Fix build error.
  MIPS: IRQ: Fix disable_irq on CPU IRQs
  MIPS: smp-mt,smp-cmp: Enable all HW IRQs on secondary CPUs
  MIPS: Fix restart of indirect syscalls
  MIPS: ELF: fix loading o32 binaries on 64-bit kernels
  MIPS: mips-cm: Fix sparse warnings
  MIPS: Kconfig: Fix recursive dependency.
  MIPS: Compat: Fix build error if CONFIG_MIPS32_COMPAT but no compat ABI.
  MIPS: JZ4740: Fixup #include's (sparse)
  MIPS: Wire up execveat(2).
  ...

10 years agoxen/manage: Fix USB interaction issues when resuming
Ross Lagerwall [Mon, 19 Jan 2015 13:19:38 +0000 (13:19 +0000)]
xen/manage: Fix USB interaction issues when resuming

Commit 61a734d305e1 ("xen/manage: Always freeze/thaw processes when
suspend/resuming") ensured that userspace processes were always frozen
before suspending to reduce interaction issues when resuming devices.
However, freeze_processes() does not freeze kernel threads.  Freeze
kernel threads as well to prevent deadlocks with the khubd thread when
resuming devices.

This is what native suspend and resume does.

Example deadlock:
[ 7279.648010]  [<ffffffff81446bde>] ? xen_poll_irq_timeout+0x3e/0x50
[ 7279.648010]  [<ffffffff81448d60>] xen_poll_irq+0x10/0x20
[ 7279.648010]  [<ffffffff81011723>] xen_lock_spinning+0xb3/0x120
[ 7279.648010]  [<ffffffff810115d1>] __raw_callee_save_xen_lock_spinning+0x11/0x20
[ 7279.648010]  [<ffffffff815620b6>] ? usb_control_msg+0xe6/0x120
[ 7279.648010]  [<ffffffff81747e50>] ? _raw_spin_lock_irq+0x50/0x60
[ 7279.648010]  [<ffffffff8174522c>] wait_for_completion+0xac/0x160
[ 7279.648010]  [<ffffffff8109c520>] ? try_to_wake_up+0x2c0/0x2c0
[ 7279.648010]  [<ffffffff814b60f2>] dpm_wait+0x32/0x40
[ 7279.648010]  [<ffffffff814b6eb0>] device_resume+0x90/0x210
[ 7279.648010]  [<ffffffff814b7d71>] dpm_resume+0x121/0x250
[ 7279.648010]  [<ffffffff8144c570>] ? xenbus_dev_request_and_reply+0xc0/0xc0
[ 7279.648010]  [<ffffffff814b80d5>] dpm_resume_end+0x15/0x30
[ 7279.648010]  [<ffffffff81449fba>] do_suspend+0x10a/0x200
[ 7279.648010]  [<ffffffff8144a2f0>] ? xen_pre_suspend+0x20/0x20
[ 7279.648010]  [<ffffffff8144a1d0>] shutdown_handler+0x120/0x150
[ 7279.648010]  [<ffffffff8144c60f>] xenwatch_thread+0x9f/0x160
[ 7279.648010]  [<ffffffff810ac510>] ? finish_wait+0x80/0x80
[ 7279.648010]  [<ffffffff8108d189>] kthread+0xc9/0xe0
[ 7279.648010]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
[ 7279.648010]  [<ffffffff8175087c>] ret_from_fork+0x7c/0xb0
[ 7279.648010]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80

[ 7441.216287] INFO: task khubd:89 blocked for more than 120 seconds.
[ 7441.219457]       Tainted: G            X 3.13.11-ckt12.kz #1
[ 7441.222176] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 7441.225827] khubd           D ffff88003f433440     0    89      2 0x00000000
[ 7441.229258]  ffff88003ceb9b98 0000000000000046 ffff88003ce83000 0000000000013440
[ 7441.232959]  ffff88003ceb9fd8 0000000000013440 ffff88003cd13000 ffff88003ce83000
[ 7441.236658]  0000000000000286 ffff88003d3e0000 ffff88003ceb9bd0 00000001001aa01e
[ 7441.240415] Call Trace:
[ 7441.241614]  [<ffffffff817442f9>] schedule+0x29/0x70
[ 7441.243930]  [<ffffffff81743406>] schedule_timeout+0x166/0x2c0
[ 7441.246681]  [<ffffffff81075b80>] ? call_timer_fn+0x110/0x110
[ 7441.249339]  [<ffffffff8174357e>] schedule_timeout_uninterruptible+0x1e/0x20
[ 7441.252644]  [<ffffffff81077710>] msleep+0x20/0x30
[ 7441.254812]  [<ffffffff81555f00>] hub_port_reset+0xf0/0x580
[ 7441.257400]  [<ffffffff81558465>] hub_port_init+0x75/0xb40
[ 7441.259981]  [<ffffffff814bb3c9>] ? update_autosuspend+0x39/0x60
[ 7441.262817]  [<ffffffff814bb4f0>] ? pm_runtime_set_autosuspend_delay+0x50/0xa0
[ 7441.266212]  [<ffffffff8155a64a>] hub_thread+0x71a/0x1750
[ 7441.268728]  [<ffffffff810ac510>] ? finish_wait+0x80/0x80
[ 7441.271272]  [<ffffffff81559f30>] ? usb_port_resume+0x670/0x670
[ 7441.274067]  [<ffffffff8108d189>] kthread+0xc9/0xe0
[ 7441.276305]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
[ 7441.279131]  [<ffffffff8175087c>] ret_from_fork+0x7c/0xb0
[ 7441.281659]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80

Signed-off-by: Ross Lagerwall <[email protected]>
Cc: [email protected]
Signed-off-by: David Vrabel <[email protected]>
10 years agoACPI / EC: Add GPE reference counting debugging messages
Lv Zheng [Fri, 6 Feb 2015 00:58:16 +0000 (08:58 +0800)]
ACPI / EC: Add GPE reference counting debugging messages

This patch enhances debugging with the GPE reference count messages added.
No functional changes.

Signed-off-by: Lv Zheng <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoACPI / EC: Add query flushing support
Lv Zheng [Fri, 6 Feb 2015 00:58:10 +0000 (08:58 +0800)]
ACPI / EC: Add query flushing support

This patch implementes the QR_EC flushing support.

Grace periods are implemented from the detection of an SCI_EVT to the
submission/completion of the QR_EC transaction. During this period, all
EC command transactions are allowed to be submitted.

Note that query periods and event periods are intentionally distiguished to
allow further improvements.
1. Query period: from the detection of an SCI_EVT to the sumission of the
   QR_EC command. This period is used for storming prevention, as currently
   QR_EC is deferred to a work queue rather than directly issued from the
   IRQ context even there is no other transactions pending, so malicous
   SCI_EVT GPE can act like "level triggered" to trigger a GPE storm. We
   need to be prepared for this. And in the future, we may change it to be
   a part of the advance_transaction() where we will try QR_EC submission
   in appropriate positions to avoid such GPE storming.
2. Event period: from the detection of an SCI_EVT to the completion of the
   QR_EC command. We may extend it to the completion of _Qxx evaluation.
   This is actually a grace period for event flushing, but we only flush
   queries due to the reason stated in known issue 1. That's also why we
   use EC_FLAGS_EVENT_xxx. During this period, QR_EC transactions need to
   pass the flushable submission check.

In this patch, the following flags are implemented:
1. EC_FLAGS_EVENT_ENABLED: this is derived from the old
   EC_FLAGS_QUERY_PENDING flag which can block SCI_EVT handlings.
   With this flag, the logics implemented by the original flag are
   extended:
   1. Old logic: unless both of the flags are set, the event poller will
                 not be scheduled, and
   2. New logic: as soon as both of the flags are set, the evet poller will
                 be scheduled.
2. EC_FLAGS_EVENT_DETECTED: this is also derived from the old
   EC_FLAGS_QUERY_PENDING flag which can block SCI_EVT detection. It thus
   can be used to indicate the storming prevention period for query
   submission.
   acpi_ec_submit_request()/acpi_ec_complete_request() are invoked to
   implement this period so that acpi_set_gpe() can be invoked under the
   "reference count > 0" condition.
3. EC_FLAGS_EVENT_PENDING: this is newly added to indicate the grace period
   for event flushing (query flushing for now).
   acpi_ec_submit_request()/acpi_ec_complete_request() are invoked to
   implement this period so that the flushing process can wait until the
   event handling (query transaction for now) to be completed.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=82611
Link: https://bugzilla.kernel.org/show_bug.cgi?id=77431
Signed-off-by: Lv Zheng <[email protected]>
Tested-by: Ortwin Glück <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoACPI / EC: Refine command storm prevention support
Lv Zheng [Fri, 6 Feb 2015 00:58:05 +0000 (08:58 +0800)]
ACPI / EC: Refine command storm prevention support

This patch refines EC command storm prevention support.

Current command storming code is wrong, when the storming condition is
detected, it only flags the condition without doing anything for the
current command but performing storming prevention for the follow-up
commands. So:
1. The first command which suffers from the storming still suffers from
   storming.
2. The follow-up commands which may not suffer from the storming are
   unconditionally forced into the storming prevention mode.
Ideally, we should only enable storm prevention immediately after detection
for the current command so that the next command can try the
power/performance efficient interrupt mode again.

This patch improves the command storm prevention by disabling GPE right
after the detection and re-enabling it right before completing the command
transaction using the GPE storming prevention APIs. This thus deploys the
following GPE handling model:
1. acpi_enable_gpe()/acpi_disable_gpe() for reference count changes:
   This set of APIs are used for EC usage reference counting.
2. acpi_set_gpe(ACPI_GPE_ENABLE)/acpi_set_gpe(ACPI_GPE_DISABLE):
   This set of APIs are used for preventing GPE storm. They must be invoked
   when the reference count > 0.
   Note that as the storming prevention should always happen when there is
   an outstanding request, or GPE enabling value will be messed up by the
   races. This patch also adds BUG_ON() to enforces this rule to prevent
   future bugs.

The msleep(1) used after completing a transaction is useless now as this
sounds like a guard time only useful for platforms that need the
EC_FLAGS_MSI quirks while we have fixed GPE race issues using the previous
raw handler mode enabling. It is kept to avoid regressions. A seperate
patch which deletes EC_FLAGS_MSI quirks should take care of deleting it.

Signed-off-by: Lv Zheng <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoACPI / EC: Add command flushing support.
Lv Zheng [Fri, 6 Feb 2015 00:57:59 +0000 (08:57 +0800)]
ACPI / EC: Add command flushing support.

This patch implements the EC command flushing support.

During the grace period indicated by EC_FLAGS_STARTED and EC_FLAGS_STOPPED,
all submitted EC command transactions can be completed and new submissions
are prevented before suspending so that the EC hardware can be ensured to
be in the idle state when the system is resumed.

There is a good indicator for flush support:
All acpi_ec_submit_request() is invoked after checking driver state with
acpi_ec_started() except the first one. This means all code paths can be
flushed as fast as possible by discarding the requests occurred after the
flush operation. The reference increased for such kind of code path is
wrapped by acpi_ec_submit_flushable_request().

Signed-off-by: Lv Zheng <[email protected]>
Tested-by: Ortwin Glück <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag
Lv Zheng [Fri, 6 Feb 2015 00:57:52 +0000 (08:57 +0800)]
ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag

By using the 2 flags, we can indicate an inter-mediate state where the
current transactions should be completed while the new transactions should
be dropped.

The comparison of the old flag and the new flags:
  Old New
  about to set BLOCKED STOPPED set / STARTED set
  BLOCKED set STOPPED clear / STARTED clear
  BLOCKED clear STOPPED clear / STARTED set
A new period can be indicated by the 2 flags. The new period is between the
point where we are about to set BLOCKED and the point when the BLOCKED is
set. The new flags facilitate us with acpi_ec_started() check to allow the
EC transaction to be submitted during the new period. This period thus can
be used as a grace period for the EC transaction flushing.

The only functional change after applying this patch is:
1. The GPE enabling/disabling is protected by the EC specific lock. We can
   do this because of recent ACPICA GPE API enhancement. This is reasonable
   as the GPE disabling/enabling state should only be determined by the EC
   driver's state machine which is protected by the EC spinlock.

Signed-off-by: Lv Zheng <[email protected]>
Tested-by: Ortwin Glück <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoACPI: add AMD ACPI2Platform device support for x86 system
Ken Xue [Fri, 6 Feb 2015 00:27:51 +0000 (08:27 +0800)]
ACPI: add AMD ACPI2Platform device support for x86 system

This new feature is to interpret AMD specific ACPI device to
platform device such as I2C, UART, GPIO found on AMD CZ and
later chipsets. It based on example intel LPSS. Now, it can
support AMD I2C, UART and GPIO.

Signed-off-by: Ken Xue <[email protected]>
Acked-by: Mika Westerberg <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agoMerge back earlier 'acpi-lpss' material for v3.20
Rafael J. Wysocki [Fri, 6 Feb 2015 14:39:04 +0000 (15:39 +0100)]
Merge back earlier 'acpi-lpss' material for v3.20

10 years agoMerge ath-next from ath.git
Kalle Valo [Fri, 6 Feb 2015 14:14:11 +0000 (16:14 +0200)]
Merge ath-next from ath.git

Major changes in ath10k:

* add support for qca6174 hardware
* enable RX batching to reduce CPU load

10 years agoALSA: line6: Get rid of unused variable in pod.c
Takashi Iwai [Fri, 6 Feb 2015 09:12:14 +0000 (10:12 +0100)]
ALSA: line6: Get rid of unused variable in pod.c

Signed-off-by: Takashi Iwai <[email protected]>
10 years agoALSA: line6: Create sysfs via snd_card_add_dev_attr()
Takashi Iwai [Fri, 30 Jan 2015 11:36:17 +0000 (12:36 +0100)]
ALSA: line6: Create sysfs via snd_card_add_dev_attr()

Use the new helper function to create sysfs entries in the card more
gracefully without races.

Signed-off-by: Takashi Iwai <[email protected]>
10 years agoALSA: Add a helper to add a new attribute group to card
Takashi Iwai [Fri, 30 Jan 2015 11:27:43 +0000 (12:27 +0100)]
ALSA: Add a helper to add a new attribute group to card

For assigning sysfs entries for a card device from the driver,
introduce a new helper function, snd_card_add_dev_attr().  In this
way, we can avoid the possible race between the device registration
and the sysfs addition / removal.

The driver can pass a new attribute group to add freely.  This has to
be called before snd_card_register().

Currently, up to two extra groups can be added.  More than that, it'll
return an error.

Signed-off-by: Takashi Iwai <[email protected]>
10 years agoRevert "IB/core: Add support for extended query device caps"
Yann Droneaud [Thu, 5 Feb 2015 21:10:18 +0000 (22:10 +0100)]
Revert "IB/core: Add support for extended query device caps"

While commit 7e36ef8205ff ("IB/core: Temporarily disable
ex_query_device uverb") is correct as it makes the extended
QUERY_DEVICE uverb (which came as part of commit 5a77abf9a97a
("IB/core: Add support for extended query device caps") and commit
860f10a799c8 ("IB/core: Add flags for on demand paging support")) not
available to userspace, it doesn't address the initial issue regarding
ib_copy_to_udata() [1][2].

Additionally, further discussions around this new uverb seems to
conclude it would require a different data structure than the one
currently described in <rdma/ib_user_verbs.h> [3].

Both of these issues require a revert of the changes, so this patch
partially reverts commit 8cdd312cfed7 ("IB/mlx5: Implement the ODP
capability query verb") and commit 860f10a799c8 ("IB/core: Add flags
for on demand paging support") and fully reverts commit 5a77abf9a97a
("IB/core: Add support for extended query device caps").

[1] "Re: [PATCH v3 06/17] IB/core: Add support for extended query device caps"
    http://mid.gmane.org/1418733236[email protected]

[2] "Re: [PATCH] IB/core: Temporarily disable ex_query_device uverb"
    http://mid.gmane.org/1423067503[email protected]

[3] "RE: [PATCH v1 1/5] IB/uverbs: ex_query_device: answer must not depend on request's comp_mask"
    http://mid.gmane.org/2807E5FD2F6FDA4886F6618EAC48510E0CC12C30@CRSMSX101.amr.corp.intel.com

Cc: Eli Cohen <[email protected]>
Cc: Haggai Eran <[email protected]>
Cc: Ira Weiny <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Sagi Grimberg <[email protected]>
Cc: Shachar Raindel <[email protected]>
Signed-off-by: Yann Droneaud <[email protected]>
Signed-off-by: Roland Dreier <[email protected]>
10 years agoMerge tag 'iwlwifi-next-for-kalle-2015-02-03' of https://git.kernel.org/pub/scm/linux...
Kalle Valo [Fri, 6 Feb 2015 06:57:37 +0000 (08:57 +0200)]
Merge tag 'iwlwifi-next-for-kalle-2015-02-03' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next

* Add support for beamforming
* Enable stuck queue detection for iwlmvm
* A few fixes for EBS scan
* Fixes for various failure paths
* Improvements for TDLS Offchannel

10 years agobrcm80211: Delete unnecessary checks before two function calls
Markus Elfring [Wed, 4 Feb 2015 19:28:49 +0000 (20:28 +0100)]
brcm80211: Delete unnecessary checks before two function calls

The functions brcmu_pkt_buf_free_skb() and usb_free_urb() test whether
their argument is NULL and then return immediately. Thus the test around
the call is not needed.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agohostap: Delete an unnecessary check before the function call "kfree"
Markus Elfring [Wed, 4 Feb 2015 19:06:39 +0000 (20:06 +0100)]
hostap: Delete an unnecessary check before the function call "kfree"

The kfree() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoorinoco: Delete an unnecessary check before the function call "kfree"
Markus Elfring [Wed, 4 Feb 2015 18:53:11 +0000 (19:53 +0100)]
orinoco: Delete an unnecessary check before the function call "kfree"

The kfree() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Delete an unnecessary check before the function call "relay_close"
Markus Elfring [Wed, 4 Feb 2015 17:48:28 +0000 (18:48 +0100)]
ath9k: Delete an unnecessary check before the function call "relay_close"

The relay_close() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agocw1200: Less function calls in cw1200_load_firmware_cw1200() after error detection
Markus Elfring [Wed, 4 Feb 2015 16:28:41 +0000 (17:28 +0100)]
cw1200: Less function calls in cw1200_load_firmware_cw1200() after error detection

The functions kfree() and release_firmware() were called in a few cases
by the cw1200_load_firmware_cw1200() function during error handling even if
the passed variables contained still a null pointer.

Corresponding implementation details could be improved by adjustments for
jump targets.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agocw1200: Delete an unnecessary check before the function call "release_firmware"
Markus Elfring [Wed, 4 Feb 2015 15:32:15 +0000 (16:32 +0100)]
cw1200: Delete an unnecessary check before the function call "release_firmware"

The release_firmware() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoorinoco: orinoco_tmd use msecs_to_jiffies for conversion
Nicholas Mc Guire [Wed, 4 Feb 2015 08:07:41 +0000 (03:07 -0500)]
orinoco: orinoco_tmd use msecs_to_jiffies for conversion

This is only an API consolidation and should make things more readable
it replaces var * HZ / 1000 by msecs_to_jiffies(var).

Signed-off-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoorinoco: orinoco_pci use msecs_to_jiffies for conversion
Nicholas Mc Guire [Wed, 4 Feb 2015 08:07:40 +0000 (03:07 -0500)]
orinoco: orinoco_pci use msecs_to_jiffies for conversion

This is only an API consolidation and should make things more readable
it replaces var * HZ / 1000 by msecs_to_jiffies(var).

Signed-off-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoorinoco: orinoco_plx use msecs_to_jiffies for conversion
Nicholas Mc Guire [Wed, 4 Feb 2015 08:07:39 +0000 (03:07 -0500)]
orinoco: orinoco_plx use msecs_to_jiffies for conversion

This is only an API consolidation and should make things more readable
it replaces var * HZ / 1000 by msecs_to_jiffies(var).

Signed-off-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agocw1200: use msecs_to_jiffies for conversion
Nicholas Mc Guire [Wed, 4 Feb 2015 07:39:49 +0000 (02:39 -0500)]
cw1200: use msecs_to_jiffies for conversion

This is only an API consolidation to make things more readable.
Instances of  HZ / CONST  are replaced by appropriate msecs_to_jiffies().

Signed-off-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath5k: fix spontaneus AR5312 freezes
Sergey Ryazanov [Tue, 3 Feb 2015 21:21:13 +0000 (00:21 +0300)]
ath5k: fix spontaneus AR5312 freezes

Sometimes while CPU have some load and ath5k doing the wireless
interface reset the whole WiSoC completely freezes. Set of tests shows
that using atomic delay function while we wait interface reset helps to
avoid such freezes.

The easiest way to reproduce this issue: create a station interface,
start continous scan with wpa_supplicant and load CPU by something. Or
just create multiple station interfaces and put them all in continous
scan.

This patch partially reverts the commit 1846ac3dbec0 ("ath5k: Use
usleep_range where possible"), which replaces initial udelay()
by usleep_range().

I do not know actual source of this issue, but all looks like that HW
freeze is caused by transaction on internal SoC bus, while wireless
block is in reset state.

Also I should note that I do not know how many chips are affected, but I
did not see this issue with chips, other than AR5312.

CC: Jiri Slaby <[email protected]>
CC: Nick Kossifidis <[email protected]>
CC: Luis R. Rodriguez <[email protected]>
Fixes: 1846ac3dbec0 ("ath5k: Use usleep_range where possible")
Reported-by: Christophe Prevotaux <[email protected]>
Tested-by: Christophe Prevotaux <[email protected]>
Tested-by: Eric Bree <[email protected]>
Signed-off-by: Sergey Ryazanov <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Choose correct rate for 2GHz channel
Sujith Manoharan [Mon, 2 Feb 2015 12:51:13 +0000 (18:21 +0530)]
ath9k: Choose correct rate for 2GHz channel

Set the transmit rate for the keep-alive frames
as 1M/CCK when the current channel is in the
2GHz band.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Clear TSF2 properly
Sujith Manoharan [Mon, 2 Feb 2015 12:51:12 +0000 (18:21 +0530)]
ath9k: Clear TSF2 properly

Chips in the AR9003 family have a second TSF, which
needs to be cleared when putting the card to
sleep.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Program AR_WA correctly
Sujith Manoharan [Mon, 2 Feb 2015 12:51:11 +0000 (18:21 +0530)]
ath9k: Program AR_WA correctly

Setting the required configuration in the PCIE
WorkAround register needs to be done after all the
WoW parameters have been set.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Fix issues with WoW enable
Sujith Manoharan [Mon, 2 Feb 2015 12:51:10 +0000 (18:21 +0530)]
ath9k: Fix issues with WoW enable

This patch addresses several issues with the
ath9k_hw_wow_enable() routine:

* The usage of set/clr variables is removed. Writing
  the required values to registers is cleaner.

* The shift value of 28 for the contention window field
  in AR_WOW_PATTERN is incorrect, change it to 27.

* Disabling Keep Alive needs to be done based on the
  LINK_CHANGE option. This is done unconditionally now,
  fix this.

* The workaround for the D1/D3 issue is required only
  for AR9462.

* The bitfield for enabling pattern matching for packets
  less than 256 bytes has expanded for new chips, handle
  this accordingly.

* General cleanup.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Register correct WOW details with mac80211
Sujith Manoharan [Mon, 2 Feb 2015 12:51:09 +0000 (18:21 +0530)]
ath9k: Register correct WOW details with mac80211

Since the number of user patterns is higher for
newer chips, make sure that this is registered
during initialization.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agoath9k: Add support for more WOW patterns
Sujith Manoharan [Mon, 2 Feb 2015 12:51:08 +0000 (18:21 +0530)]
ath9k: Add support for more WOW patterns

Newer chips like WB222, WB335 support more than
8 user-configurable patterns. This patch adds
support for it by setting up the correct HW
registers.

Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
10 years agortlwifi: rtl8192ee: Fix problems with calculating free space in FIFO
Larry Finger [Tue, 3 Feb 2015 17:15:18 +0000 (11:15 -0600)]
rtlwifi: rtl8192ee: Fix problems with calculating free space in FIFO

This driver utilizes a FIFO buffer for RX descriptors. There are four places
in the code where it calculates the number of free slots. Several of those
locations do the calculation incorrectly. To fix these and to prevent future
mistakes, a common inline routine is created.

Signed-off-by: Larry Finger <[email protected]>
Cc: Stable <[email protected]> [V3.18]
Signed-off-by: Kalle Valo <[email protected]>
10 years agortlwifi: rtl8192ee: Fix handling of new style descriptors
Troy Tan [Tue, 3 Feb 2015 17:15:17 +0000 (11:15 -0600)]
rtlwifi: rtl8192ee: Fix handling of new style descriptors

The hardware and firmware for the RTL8192EE utilize a FIFO list of
descriptors. There were some problems with the initial implementation.
The worst of these failed to detect that the FIFO was becoming full,
which led to the device needing to be power cycled. As this condition
is not relevant to most of the devices supported by rtlwifi, a callback
routine was added to detect this situation. This patch implements the
necessary changes in the pci handler, and the linkage into the appropriate
rtl8192ee routine.

Signed-off-by: Troy Tan <[email protected]>
Signed-off-by: Larry Finger <[email protected]>
Cc: Stable <[email protected]> [V3.18]
Signed-off-by: Kalle Valo <[email protected]>
10 years agoixgbe: add Tx anti spoofing support
Don Skidmore [Wed, 28 Jan 2015 07:03:38 +0000 (07:03 +0000)]
ixgbe: add Tx anti spoofing support

This patch enables the ethertype Anti-Spoofing feature for affected
devices. It is configured such that LLDP packets sent by a VF will
be dropped.

Signed-off-by: Don Skidmore <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: combine all of the tasks into a single service task
Emil Tantilov [Wed, 28 Jan 2015 03:21:34 +0000 (03:21 +0000)]
ixgbevf: combine all of the tasks into a single service task

This change combines the reset and watchdog tasklets into a single task.

The advantage of this is that we can avoid multiple schedules of the reset
task when we have a reset event needed due to either the mailbox going down
or transmit packets being present on a link down.

CC: Alexander Duyck <[email protected]>
Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: rewrite watchdog task to function similar to igbvf
Emil Tantilov [Wed, 28 Jan 2015 03:21:29 +0000 (03:21 +0000)]
ixgbevf: rewrite watchdog task to function similar to igbvf

This patch cleans up the logic dealing with link down/up by breaking down the
link detection and up/down events into separate functions - similar to how these
events are handled in other drivers.

CC: Alexander Duyck <[email protected]>
Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: Add code to check for Tx hang
Emil Tantilov [Wed, 28 Jan 2015 03:21:24 +0000 (03:21 +0000)]
ixgbevf: Add code to check for Tx hang

This patch adds code to allow for Tx hang checking.  The idea is to provide
more robust debug info in the event of a transmit unit hang. Similar to the
logic in ixgbe.

CC: Alexander Duyck <[email protected]>
Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: Fix ordering of shutdown to correctly disable Rx and Tx
Emil Tantilov [Wed, 28 Jan 2015 03:21:18 +0000 (03:21 +0000)]
ixgbevf: Fix ordering of shutdown to correctly disable Rx and Tx

This patch updates the ordering of the shutdown path so that we attempt to
shutdown the rings more gracefully. Basically the big changes are that we
shutdown the main Rx filter in the case of Rx and we set the carrier_off
state in the case of Tx so that packets stop being delivered from outside
the driver.  Then we shut down interrupts and NAPI.  Finally we stop the
rings from performing DMA and clean them.  This is a bit more graceful than
the previous path.

CC: Alexander Duyck <[email protected]>
Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: set vlan_features in a single write instead of several ORs
Emil Tantilov [Wed, 28 Jan 2015 03:21:13 +0000 (03:21 +0000)]
ixgbevf: set vlan_features in a single write instead of several ORs

Clean up the setting of vlan_features by enabling all features at once.

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: add VXLAN offload support for X550 devices
Don Skidmore [Tue, 23 Dec 2014 07:40:34 +0000 (07:40 +0000)]
ixgbe: add VXLAN offload support for X550 devices

Add support VXLAN receive checksum offload in X550 hardware.

Signed-off-by: Don Skidmore <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: Cleanup probe to remove redundant attempt to ID PHY
Don Skidmore [Fri, 12 Dec 2014 05:37:30 +0000 (05:37 +0000)]
ixgbe: Cleanup probe to remove redundant attempt to ID PHY

We always identify the PHY in our reset_hw path anyway so there is
no need to do it in get_invariants().  The reason I even noticed this
is that for new hardware (X550em) we don't assign some methods until
later in probe and calling phy.ops.read_reg could lead to a panic.

Signed-off-by: Don Skidmore <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: cleanup redundant default method set_rxpba
Don Skidmore [Wed, 10 Dec 2014 07:26:14 +0000 (07:26 +0000)]
ixgbe: cleanup redundant default method set_rxpba

My original patch 6a14ee0cfb19 "ixgbe: Add X550 support function pointers"
accidental set a default value for this structure member twice.

Signed-off-by: Don Skidmore <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: fix setting port VLAN
Emil Tantilov [Wed, 10 Dec 2014 05:28:51 +0000 (05:28 +0000)]
ixgbe: fix setting port VLAN

This patch fixes couple of issues introduced by
commit 2b509c0cd292 ("ixgbe: cleanup ixgbe_ndo_set_vf_vlan")

- fix setting of the VLAN inside ixgbe_enable_port_vlan()
- disable the "hide VLAN" bit in PFQDE when port VLAN is disabled

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Krishneil Singh <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: add RSS support for X550
Emil Tantilov [Sat, 6 Dec 2014 09:19:09 +0000 (09:19 +0000)]
ixgbevf: add RSS support for X550

X550 provides RSS registers for configuring RSS per VF.

This patch introduces ixgbevf_setup_vfmrqc() which uses the VFRETA,
VFRSSRK and VFMRQC registers to configure RSS on X550.

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Krishneil Singh <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbevf: enable multiple queue support
Emil Tantilov [Sat, 6 Dec 2014 09:19:02 +0000 (09:19 +0000)]
ixgbevf: enable multiple queue support

This patch enables multiple queues and RSS support for the VF.
Maximum of 2 queues are supported due to available vectors.

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Krishneil Singh <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: allow multiple queues in SRIOV mode
Emil Tantilov [Sat, 6 Dec 2014 09:18:57 +0000 (09:18 +0000)]
ixgbe: allow multiple queues in SRIOV mode

ixgbe_set_sriov_queues() has the logic to allow multiple queues, this patch
just removes the limitation.

Signed-off-by: Emil Tantilov <[email protected]>
Tested-by: Krishneil Singh <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoixgbe: cleanup sparse errors in new ixgbe_x550.c file
Don Skidmore [Sat, 6 Dec 2014 05:59:21 +0000 (05:59 +0000)]
ixgbe: cleanup sparse errors in new ixgbe_x550.c file

This patch cleans up prototypes that should have been defined
as static.

Signed-off-by: Don Skidmore <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agofm10k: Resolve compile warnings with W=1
Matthew Vick [Tue, 27 Jan 2015 03:39:25 +0000 (03:39 +0000)]
fm10k: Resolve compile warnings with W=1

Fix two cases where variables are being set but not used.

Signed-off-by: Matthew Vick <[email protected]>
Tested-by: Krishneil Singh<[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agofm10k: Validate VLAN ID in fm10k_update_xc_addr_pf
Matthew Vick [Tue, 27 Jan 2015 02:33:26 +0000 (02:33 +0000)]
fm10k: Validate VLAN ID in fm10k_update_xc_addr_pf

Currently, fm10k_update_xc_addr_pf has an issue where it does not
properly drop the upper-most four bits of the VLAN ID due to type
promotion. Resolve the issue not by masking off the bits, but by
throwing an error if the VLAN ID is out-of-bounds.

Reported-by: Rasmus Villemoes <[email protected]>
Signed-off-by: Matthew Vick <[email protected]>
Tested-by: Krishneil Singh <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
10 years agoInput: evdev - do not queue SYN_DROPPED if queue is empty
Dmitry Torokhov [Thu, 5 Feb 2015 23:56:28 +0000 (15:56 -0800)]
Input: evdev - do not queue SYN_DROPPED if queue is empty

There is no point in queueing EV_SYN/SYN_DROPPED on clock type change when
there are no events in the client's queue and doing so confuses tests in
libinput package, so let's not do that.

Reported-and-tested-by: Benjamin Tissoires <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
10 years agoACPI / table: remove duplicate NULL check for the handler of acpi_table_parse()
Hanjun Guo [Thu, 5 Feb 2015 09:33:14 +0000 (17:33 +0800)]
ACPI / table: remove duplicate NULL check for the handler of acpi_table_parse()

In acpi_table_parse(), pointer of the table to pass to handler() is
checked before handler() called, so remove all the duplicate NULL
check in the handler function.

CC: Tony Luck <[email protected]>
CC: Thomas Gleixner <[email protected]>
Signed-off-by: Hanjun Guo <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
10 years agovxge: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 13:56:09 +0000 (13:56 +0000)]
vxge: fix sparse warning

this patch fixes following sparse warning:

vxge-config.c:4640:30: warning: Using plain integer as NULL pointer

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoxen-netback: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 13:38:07 +0000 (13:38 +0000)]
xen-netback: fix sparse warning

this patch fixes following sparse warning:

interface.c:83:5: warning: symbol 'xenvif_poll' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Acked-by: Wei Liu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agonet/macb: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 16:21:07 +0000 (16:21 +0000)]
net/macb: fix sparse warning

this patch fixes following sparse warning:

macb.c:2038:26: warning: symbol 'gem_ethtool_ops' was not declared. Should it be static?

Alongside drops exporting of gem_ethtool_ops as there is no need.

Signed-off-by: Lad, Prabhakar <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agonet: bnx2x: fix sparse warnings
Lad, Prabhakar [Thu, 5 Feb 2015 15:47:17 +0000 (15:47 +0000)]
net: bnx2x: fix sparse warnings

this patch fixes following sparse warnings:

bnx2x_main.c:9172:6: warning: symbol 'bnx2x_stop_ptp' was not declared. Should it be static?
bnx2x_main.c:13321:6: warning: symbol 'bnx2x_register_phc' was not declared. Should it be static?
bnx2x_main.c:14638:5: warning: symbol 'bnx2x_enable_ptp_packets' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Acked-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoenic: enic_main: fix sparse warnings
Lad, Prabhakar [Thu, 5 Feb 2015 15:34:13 +0000 (15:34 +0000)]
enic: enic_main: fix sparse warnings

this patch fixes following sparse warnings:

enic_main.c:92:28: warning: symbol 'mod_table' was not declared. Should it be static?
enic_main.c:109:28: warning: symbol 'mod_range' was not declared. Should it be static?
enic_main.c:1306:5: warning: symbol 'enic_busy_poll' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoenic: enic_ethtool: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 15:29:55 +0000 (15:29 +0000)]
enic: enic_ethtool: fix sparse warning

this patch fixes following sparse warning:

enic_ethtool.c:95:6: warning: symbol 'enic_intr_coal_set_rx' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agobe2net: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 15:24:43 +0000 (15:24 +0000)]
be2net: fix sparse warning

this patch fixes following sparse warning:

be_cmds.c:2750:5: warning: symbol 'be_cmd_set_qos' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agochelsio: cxgb4: fix sparse warning
Lad, Prabhakar [Thu, 5 Feb 2015 15:20:09 +0000 (15:20 +0000)]
chelsio: cxgb4: fix sparse warning

this patch fixes following sparse warning:

cxgb4_dcb.c:25:6: warning: symbol 'dcb_ver_array' was not declared. Should it be static?

Alongside making it const.

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agohyperv: fix sparse warnings
Lad, Prabhakar [Thu, 5 Feb 2015 15:06:33 +0000 (15:06 +0000)]
hyperv: fix sparse warnings

this patch fixes following sparse warnings:

netvsc.c:688:5: warning: symbol 'netvsc_copy_to_send_buf' was not declared. Should it be static?
rndis_filter.c:627:5: warning: symbol 'rndis_filter_set_offload_params' was not declared. Should it be static?
rndis_filter.c:702:5: warning: symbol 'rndis_filter_set_rss_param' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <[email protected]>
Signed-off-by: Haiyang Zhang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agoMerge branch 'tipc-next'
David S. Miller [Fri, 6 Feb 2015 00:00:06 +0000 (16:00 -0800)]
Merge branch 'tipc-next'

Jon Maloy says:

====================
tipc: resolve message disordering problem

When TIPC receives messages from multi-threaded device drivers it may
occasionally deliver messages to their destination sockets in the wrong
order. This happens despite correct resequencing at the link layer,
because the upcall path from link to socket is not protected by any
locks.

These commits solve this problem by introducing an 'input' message
queue in each link, through which messages must be delivered to the
upper layers.
====================

Signed-off-by: David S. Miller <[email protected]>
10 years agotipc: eliminate race condition at multicast reception
Jon Paul Maloy [Thu, 5 Feb 2015 13:36:44 +0000 (08:36 -0500)]
tipc: eliminate race condition at multicast reception

In a previous commit in this series we resolved a race problem during
unicast message reception.

Here, we resolve the same problem at multicast reception. We apply the
same technique: an input queue serializing the delivery of arriving
buffers. The main difference is that here we do it in two steps.
First, the broadcast link feeds arriving buffers into the tail of an
arrival queue, which head is consumed at the socket level, and where
destination lookup is performed. Second, if the lookup is successful,
the resulting buffer clones are fed into a second queue, the input
queue. This queue is consumed at reception in the socket just like
in the unicast case. Both queues are protected by the same lock, -the
one of the input queue.

Reviewed-by: Ying Xue <[email protected]>
Signed-off-by: Jon Maloy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
10 years agotipc: simplify socket multicast reception
Jon Paul Maloy [Thu, 5 Feb 2015 13:36:43 +0000 (08:36 -0500)]
tipc: simplify socket multicast reception

The structure 'tipc_port_list' is used to collect port numbers
representing multicast destination socket on a receiving node.
The list is not based on a standard linked list, and is in reality
optimized for the uncommon case that there are more than one
multicast destinations per node. This makes the list handling
unecessarily complex, and as a consequence, even the socket
multicast reception becomes more complex.

In this commit, we replace 'tipc_port_list' with a new 'struct
tipc_plist', which is based on a standard list. We give the new
list stack (push/pop) semantics, someting that simplifies
the implementation of the function tipc_sk_mcast_rcv().

Reviewed-by: Ying Xue <[email protected]>
Signed-off-by: Jon Maloy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This page took 0.130803 seconds and 4 git commands to generate.