linux_dsm_epyc7002/include/linux
Ying Xue 57699a40b4 rhashtable: Fix race in rhashtable_destroy() and use regular work_struct
When we put our declared work task in the global workqueue with
schedule_delayed_work(), its delay parameter is always zero.
Therefore, we should define a regular work in rhashtable structure
instead of a delayed work.

By the way, we add a condition to check whether resizing functions
are NULL before cancelling the work, avoiding to cancel an
uninitialized work.

Lastly, while we wait for all work items we submitted before to run
to completion with cancel_delayed_work(), ht->mutex has been taken in
rhashtable_destroy(). Moreover, cancel_delayed_work() doesn't return
until all work items are accomplished, and when work items are
scheduled, the work's function - rht_deferred_worker() will be called.
However, as rht_deferred_worker() also needs to acquire the lock,
deadlock might happen at the moment as the lock is already held before.
So if the cancel work function is moved out of the lock covered scope,
this will avoid the deadlock.

Fixes: 97defe1 ("rhashtable: Per bucket locks & deferred expansion/shrinking")
Signed-off-by: Ying Xue <ying.xue@windriver.com>
Cc: Thomas Graf <tgraf@suug.ch>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-16 01:18:51 -05:00
..
amba
bcma
byteorder
can
ceph libceph: fix sparse endianness warnings 2015-01-08 20:36:57 +03:00
clk
crush
decompress
dma
extcon
fsl/bestcomm
gpio
hsi
i2c
iio
input
irqchip
isdn
lockd
mfd
mlx4
mlx5
mmc mmc: sdhci: Disable re-tuning for HS400 2015-01-12 10:14:56 +01:00
mtd
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
phy
pinctrl
platform_data
power
raid
regulator
rtc
sched
soc/ti
spi
ssb
sunrpc
unaligned
usb
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_pmtmr.h
acpi.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
arcdevice.h
arm-cci.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_serial.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h
backlight.h
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk_types.h blk-mq: Allow requests to never expire 2015-01-08 08:59:01 -07:00
blk-iopoll.h
blk-mq.h blk-mq: Add helper to abort requeued requests 2015-01-08 08:55:53 -07:00
blkdev.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_subsys.h
cgroup.h
circ_buf.h
cleancache.h
clk-private.h
clk-provider.h
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
com20020.h
compaction.h
compat.h
compiler-clang.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc5.h
compiler-gcc.h
compiler-intel.h
compiler.h kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val) 2015-01-13 20:39:09 +01:00
completion.h
component.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq-dt.h
cpufreq.h
cpuidle.h
cpumask.h
cpuset.h
cputime.h
crash_dump.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
dell-led.h
devcoredump.h
devfreq.h
device_cgroup.h
device-mapper.h
device.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma_remapping.h
dma-attrs.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fence.h
file.h
filter.h
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
freezer.h
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h vfs: renumber FMODE_NONOTIFY and add to uniqueness check 2015-01-08 15:10:52 -08:00
fscache-cache.h
fscache.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h
fsnotify.h
ftrace_event.h
ftrace_irq.h
ftrace.h
futex.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio_keys.h
gpio_mouse.h
gpio-fan.h
gpio-pxa.h
gpio.h
gsmmux.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h
i2o.h
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
igmp.h
ihex.h
ima.h
in6.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel_mid_dma.h
intel_pmic_gpio.h
intel-iommu.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_work.h
irq.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
jbd2.h
jbd_common.h
jbd.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
lglock.h
lguest_launcher.h
lguest.h
libata.h
libfdt_env.h
libfdt.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h
llc.h
llist.h
lockdep.h
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h
memcontrol.h
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
migrate_mode.h
migrate.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types.h
mm.h
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mutex-debug.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nbd.h
net.h
netdev_features.h
netdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-01-15 00:53:17 -05:00
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
nubus.h
numa.h
nvme.h
nvram.h
nwpserial.h
nx842.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page_counter.h
page_ext.h
page_owner.h
page-flags-layout.h
page-flags.h
page-isolation.h
pageblock-flags.h
pagemap.h
pagevec.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h
pcieport_if.h
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
perf_regs.h perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
personality.h
pfn.h
phonet.h
phy_fixed.h
phy.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeup.h
pm.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
preempt_mask.h
preempt.h
prefetch.h
printk.h
proc_fs.h
proc_ns.h
profile.h
projid.h
property.h
proportions.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate.h
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h rhashtable: Fix race in rhashtable_destroy() and use regular work_struct 2015-01-16 01:18:51 -05:00
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h mm: prevent endless growth of anon_vma hierarchy 2015-01-08 15:10:51 -08:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched_clock.h
sched.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
sfi_acpi.h
sfi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h
slab_def.h
slab.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
spmi.h
srcu.h
ssbi.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h
svga.h
swab.h
swap_cgroup.h
swap.h
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time64.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio_driver.h
uio.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
uts.h
utsname.h
uuid.h
uwb.h
verify_pefile.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
wait.h
wanrouter.h
watchdog.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h mm: protect set_page_dirty() from ongoing truncation 2015-01-08 15:10:51 -08:00
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h