No description
Find a file
Martin Povišer a5f36e13b5 i2c: pasemi: Wait for write xfers to finish
commit bd8963e602 upstream.

Wait for completion of write transfers before returning from the driver.
At first sight it may seem advantageous to leave write transfers queued
for the controller to carry out on its own time, but there's a couple of
issues with it:

 * Driver doesn't check for FIFO space.

 * The queued writes can complete while the driver is in its I2C read
   transfer path which means it will get confused by the raising of
   XEN (the 'transaction ended' signal). This can cause a spurious
   ENODATA error due to premature reading of the MRXFIFO register.

Adding the wait fixes some unreliability issues with the driver. There's
some efficiency cost to it (especially with pasemi_smb_waitready doing
its polling), but that will be alleviated once the driver receives
interrupt support.

Fixes: beb58aa39e ("i2c: PA Semi SMBus driver")
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-20 09:36:27 +02:00
arch ep93xx: clock: Fix UAF in ep93xx_clk_register_gate() 2022-04-20 09:36:26 +02:00
block block: fix offset/size check in bio_trim() 2022-04-20 09:36:18 +02:00
certs certs: Fix build error when CONFIG_MODULE_SIG_KEY is empty 2022-01-23 00:08:44 +09:00
crypto crypto: xts - Add softdep on ecb 2022-04-08 13:58:36 +02:00
Documentation dt-bindings: memory: snps,ddrc-3.80a compatible also need interrupts 2022-04-20 09:36:27 +02:00
drivers i2c: pasemi: Wait for write xfers to finish 2022-04-20 09:36:27 +02:00
fs btrfs: mark resumed async balance as writing 2022-04-20 09:36:25 +02:00
include SUNRPC: Fix NFSD's request deferral on RDMA transports 2022-04-20 09:36:24 +02:00
init init/main.c: return 1 from handled __setup() functions 2022-04-13 19:27:23 +02:00
ipc ipc/sem: do not sleep with a spin lock held 2022-02-04 09:25:05 -08:00
kernel smp: Fix offline cpu check in flush_smp_call_function_queue() 2022-04-20 09:36:27 +02:00
lib lz4: fix LZ4_decompress_safe_partial read out of bound 2022-04-13 19:27:35 +02:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
mm hugetlb: do not demote poisoned hugetlb pages 2022-04-20 09:36:24 +02:00
net Revert "net: dsa: setup master before ports" 2022-04-20 09:36:27 +02:00
samples samples/bpf, xdpsock: Fix race when running for fix duration of time 2022-04-08 13:58:18 +02:00
scripts gcc-plugins: latent_entropy: use /dev/urandom 2022-04-20 09:36:24 +02:00
security Fix incorrect type in assignment of ipv6 port for audit 2022-04-08 13:58:37 +02:00
sound ALSA: pcm: Test for "silence" field in struct "pcm_format_data" 2022-04-20 09:36:25 +02:00
tools x86/tsx: Disable TSX development mode at boot 2022-04-20 09:36:26 +02:00
usr kbuild: remove include/linux/cyclades.h from header file check 2022-01-27 08:51:08 +01:00
virt KVM: avoid NULL pointer dereference in kvm_dirty_ring_push 2022-04-13 19:27:41 +02:00
.clang-format genirq/msi: Make interrupt allocation less convoluted 2021-12-16 22:22:20 +01:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: ignore only top-level modules.builtin 2021-05-02 00:43:35 +09:00
.mailmap MAINTAINERS: Update Jisheng's email address 2022-03-08 17:30:32 +01:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: replace a Microchip AT91 maintainer 2022-02-09 11:30:01 +01:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS net: dsa: realtek-smi: move to subdirectory 2022-04-08 13:58:12 +02:00
Makefile Linux 5.17.3 2022-04-13 19:27:43 +02:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.