linux-xiaomi-chiron/include
Davidlohr Bueso dc2c8c84de ipc: get rid of ids->tables_initialized hack
In sysvipc we have an ids->tables_initialized regarding the rhashtable,
introduced in 0cfb6aee70 ("ipc: optimize semget/shmget/msgget for lots
of keys")

It's there, specifically, to prevent nil pointer dereferences, from using
an uninitialized api.  Considering how rhashtable_init() can fail
(probably due to ENOMEM, if anything), this made the overall ipc
initialization capable of failure as well.  That alone is ugly, but fine,
however I've spotted a few issues regarding the semantics of
tables_initialized (however unlikely they may be):

- There is inconsistency in what we return to userspace: ipc_addid()
  returns ENOSPC which is certainly _wrong_, while ipc_obtain_object_idr()
  returns EINVAL.

- After we started using rhashtables, ipc_findkey() can return nil upon
  !tables_initialized, but the caller expects nil for when the ipc
  structure isn't found, and can therefore call into ipcget() callbacks.

Now that rhashtable initialization cannot fail, we can properly get rid of
the hack altogether.

[manfred@colorfullife.com: commit id extended to 12 digits]
Link: http://lkml.kernel.org/r/20180712185241.4017-10-manfred@colorfullife.com
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Kees Cook <keescook@chromium.org>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-08-22 10:52:52 -07:00
..
acpi Merge branches 'acpi-x86', 'acpi-bus', 'acpi-ec' and 'acpi-apei' 2018-08-14 10:06:45 +02:00
asm-generic module: use relative references for __ksymtab entries 2018-08-22 10:52:47 -07:00
clocksource
crypto crypto: scatterwalk - remove scatterwalk_samebuf() 2018-08-03 18:06:04 +08:00
drm drm pull for 4.19-rc1 2018-08-15 17:39:07 -07:00
dt-bindings Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
keys docs: Fix some broken references 2018-06-15 18:10:01 -03:00
kvm
linux ipc: get rid of ids->tables_initialized hack 2018-08-22 10:52:52 -07:00
math-emu
media - New Drivers 2018-08-20 15:38:44 -07:00
memory
misc Revert "cxl: Allow a default context to be associated with an external pci_dev" 2018-07-02 23:54:33 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-08-19 11:51:45 -07:00
pcmcia pcmcia: remove long deprecated pcmcia_request_exclusive_irq() function 2018-08-18 12:30:42 -07:00
ras
rdma mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
scsi SCSI misc on 20180815 2018-08-15 22:06:26 -07:00
soc drivers: qcom: rpmh: add support for batch RPMH request 2018-07-21 13:33:36 -05:00
sound ASoC: Updates for v4.19 2018-08-13 12:12:31 +02:00
target scsi: target: add session removal function 2018-08-02 15:29:31 -04:00
trace Updates for v4.19: 2018-08-20 18:32:00 -07:00
uapi autofs: add AUTOFS_EXP_FORCED flag 2018-08-22 10:52:49 -07:00
video drm: Add support for pps and compression mode command packet 2018-07-25 07:51:05 -04:00
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-08-18 16:48:07 -07:00