linux/sound/soc/codecs
Lin Ma 2def44d3ae
ASoC: rt5645: Fix errorenous cleanup order
There is a logic error when removing rt5645 device as the function
rt5645_i2c_remove() first cancel the &rt5645->jack_detect_work and
delete the &rt5645->btn_check_timer latter. However, since the timer
handler rt5645_btn_check_callback() will re-queue the jack_detect_work,
this cleanup order is buggy.

That is, once the del_timer_sync in rt5645_i2c_remove is concurrently
run with the rt5645_btn_check_callback, the canceled jack_detect_work
will be rescheduled again, leading to possible use-after-free.

This patch fix the issue by placing the del_timer_sync function before
the cancel_delayed_work_sync.

Signed-off-by: Lin Ma <linma@zju.edu.cn>
Link: https://lore.kernel.org/r/20220516092035.28283-1-linma@zju.edu.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-05-16 12:58:42 +01:00
..
88pm860x-codec.c
88pm860x-codec.h
ab8500-codec.c
ab8500-codec.h
ac97.c
ad193x-i2c.c
ad193x-spi.c
ad193x.c
ad193x.h
ad1836.c
ad1836.h
ad1980.c
ad73311.c
ad73311.h
adau-utils.c
adau-utils.h
adau17x1.c
adau17x1.h
adau1372-i2c.c
adau1372-spi.c
adau1372.c ASoC: adau1372: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:22 +01:00
adau1372.h
adau1373.c
adau1373.h
adau1701.c
adau1701.h
adau1761-i2c.c
adau1761-spi.c
adau1761.c
adau1761.h
adau1781-i2c.c
adau1781-spi.c
adau1781.c
adau1781.h
adau1977-i2c.c
adau1977-spi.c
adau1977.c
adau1977.h
adau7002.c
adau7118-hw.c
adau7118-i2c.c
adau7118.c
adau7118.h
adav80x.c
adav80x.h
adav801.c
adav803.c
ads117x.c
ak4104.c
ak4118.c
ak4375.c
ak4458.c
ak4458.h
ak4535.c
ak4535.h
ak4554.c
ak4613.c
ak4641.c
ak4642.c
ak4671.c
ak4671.h
ak5386.c
ak5558.c
ak5558.h
alc5623.c
alc5623.h
alc5632.c
alc5632.h
arizona-jack.c
arizona.c
arizona.h
aw8738.c
bd28623.c
bt-sco.c
cirrus_legacy.h
cpcap.c
cq93vc.c
cros_ec_codec.c ASoC: cros_ec_codec: Add endianness flag in i2s_rx_component_driver 2022-05-09 12:46:40 +01:00
cs35l32.c
cs35l32.h
cs35l33.c
cs35l33.h
cs35l34.c
cs35l34.h
cs35l35.c
cs35l35.h
cs35l36.c ASoC: cs35l36: Fix the error handling of cs35l36_i2c_probe() 2022-05-11 17:40:13 +01:00
cs35l36.h
cs35l41-i2c.c
cs35l41-lib.c
cs35l41-spi.c
cs35l41.c ASoC: cs35l41: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:24 +01:00
cs35l41.h
cs35l45-i2c.c
cs35l45-spi.c
cs35l45-tables.c
cs35l45.c
cs35l45.h
cs42l42.c
cs42l42.h
cs42l51-i2c.c
cs42l51.c ASoC: cs42l51: Remove redundant big endian formats 2022-05-09 12:46:11 +01:00
cs42l51.h
cs42l52.c
cs42l52.h
cs42l56.c ASoC: cs42l56: Fix the error handling of cs42l56_i2c_probe() 2022-05-11 17:42:12 +01:00
cs42l56.h
cs42l73.c
cs42l73.h
cs42xx8-i2c.c
cs42xx8.c
cs42xx8.h
cs47l15.c
cs47l24.c
cs47l24.h
cs47l35.c
cs47l85.c
cs47l90.c
cs47l92.c
cs53l30.c
cs53l30.h
cs4234.c ASoC: cs4234: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:23 +01:00
cs4234.h
cs4265.c
cs4265.h
cs4270.c ASoC: cs4270: Remove redundant big endian formats 2022-05-09 12:46:10 +01:00
cs4271-i2c.c
cs4271-spi.c
cs4271.c
cs4271.h
cs4341.c
cs4349.c ASoC: cs4349: Remove redundant big endian formats 2022-05-09 12:46:13 +01:00
cs4349.h
cs43130.c ASoC: cs43130: Re-use generic struct u16_fract 2022-05-05 13:24:49 +01:00
cs43130.h ASoC: cs43130: Re-use generic struct u16_fract 2022-05-05 13:24:49 +01:00
cx2072x.c ASoC: cx2072x: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:26 +01:00
cx2072x.h
cx20442.c
cx20442.h
da732x.c
da732x.h
da732x_reg.h
da7210.c
da7213.c
da7213.h
da7218.c
da7218.h
da7219-aad.c
da7219-aad.h
da7219.c
da7219.h
da9055.c
dmic.c
es7134.c
es7241.c
es8316.c
es8316.h
es8328-i2c.c
es8328-spi.c
es8328.c
es8328.h
gtm601.c
hdac_hda.c ASoC: hdac_hda: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:19 +01:00
hdac_hda.h
hdac_hdmi.c
hdac_hdmi.h
hdmi-codec.c ASoC: hdmi-codec: Remove redundant big endian formats 2022-05-09 12:46:14 +01:00
ics43432.c
inno_rk3036.c
inno_rk3036.h
isabelle.c
isabelle.h
jz4725b.c
jz4740.c
jz4760.c
jz4770.c
Kconfig ASoC: wm8940: add devicetree support 2022-05-09 19:04:36 +01:00
l3.c
lm4857.c
lm49453.c
lm49453.h
lochnagar-sc.c ASoC: lochnagar: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:27 +01:00
lpass-macro-common.c
lpass-macro-common.h
lpass-rx-macro.c
lpass-tx-macro.c
lpass-va-macro.c
lpass-wsa-macro.c
lpass-wsa-macro.h
madera.c
madera.h
Makefile
max9759.c
max9768.c
max9850.c
max9850.h
max9860.c
max9860.h
max9867.c
max9867.h
max9877.c
max9877.h
max98088.c
max98088.h
max98090.c
max98090.h
max98095.c
max98095.h
max98357a.c
max98371.c
max98371.h
max98373-i2c.c
max98373-sdw.c
max98373-sdw.h
max98373.c
max98373.h
max98390.c
max98390.h
max98396.c ASoC: max98396: Fix build error for implicit function declaration 2022-05-12 11:43:35 +01:00
max98396.h
max98504.c ASoC: max98504: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:20 +01:00
max98504.h
max98520.c
max98520.h
max98925.c
max98925.h
max98926.c
max98926.h
max98927.c
max98927.h
mc13783.c
mc13783.h
ml26124.c
ml26124.h
msm8916-wcd-analog.c
msm8916-wcd-digital.c
mt6351.c ASoC: mt6351: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:29 +01:00
mt6351.h
mt6358.c ASoC: mt6358: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:30 +01:00
mt6358.h
mt6359-accdet.c
mt6359-accdet.h
mt6359.c ASoC: mt6359: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:32 +01:00
mt6359.h
mt6660.c ASoC: mt6660: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:33 +01:00
mt6660.h
nau8315.c
nau8540.c
nau8540.h
nau8810.c
nau8810.h
nau8821.c
nau8821.h
nau8822.c
nau8822.h
nau8824.c
nau8824.h
nau8825.c
nau8825.h
pcm179x-i2c.c
pcm179x-spi.c
pcm179x.c
pcm179x.h
pcm186x-i2c.c
pcm186x-spi.c
pcm186x.c ASoC: pcm186x: simplify the return expression of pcm186x_power_off() 2022-05-09 12:48:43 +01:00
pcm186x.h
pcm512x-i2c.c
pcm512x-spi.c
pcm512x.c
pcm512x.h
pcm1681.c
pcm1789-i2c.c
pcm1789.c
pcm1789.h
pcm3008.c
pcm3008.h
pcm3060-i2c.c
pcm3060-spi.c
pcm3060.c ASoC: pcm3060: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:35 +01:00
pcm3060.h
pcm3168a-i2c.c
pcm3168a-spi.c
pcm3168a.c
pcm3168a.h
pcm5102a.c
rk817_codec.c
rk3328_codec.c
rk3328_codec.h
rl6231.c
rl6231.h
rl6347a.c
rl6347a.h
rt274.c
rt274.h
rt286.c
rt286.h
rt298.c
rt298.h
rt700-sdw.c
rt700-sdw.h
rt700.c ASoC: rt700: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:44 +01:00
rt700.h
rt711-sdca-sdw.c
rt711-sdca-sdw.h
rt711-sdca.c ASoC: rt711-sdca: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:46 +01:00
rt711-sdca.h
rt711-sdw.c
rt711-sdw.h
rt711.c ASoC: rt711: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:45 +01:00
rt711.h
rt715-sdca-sdw.c ASoC: codecs: rt715-sdca: remove useless assignment of ops 2022-05-10 12:31:31 +01:00
rt715-sdca-sdw.h
rt715-sdca.c ASoC: rt715-sdca: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:48 +01:00
rt715-sdca.h
rt715-sdw.c
rt715-sdw.h
rt715.c ASoC: rt715: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:47 +01:00
rt715.h
rt1011.c
rt1011.h
rt1015.c
rt1015.h
rt1015p.c
rt1016.c
rt1016.h
rt1019.c ASoC: rt1019: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:36 +01:00
rt1019.h
rt1305.c
rt1305.h
rt1308-sdw.c ASoC: rt1308-sdw: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:49 +01:00
rt1308-sdw.h
rt1308.c
rt1308.h
rt1316-sdw.c ASoC: rt1316-sdw: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:50 +01:00
rt1316-sdw.h
rt5514-spi.c
rt5514-spi.h
rt5514.c
rt5514.h
rt5616.c
rt5616.h
rt5631.c
rt5631.h
rt5640.c
rt5640.h
rt5645.c ASoC: rt5645: Fix errorenous cleanup order 2022-05-16 12:58:42 +01:00
rt5645.h
rt5651.c
rt5651.h
rt5659.c
rt5659.h
rt5660.c
rt5660.h
rt5663.c
rt5663.h
rt5665.c
rt5665.h
rt5668.c
rt5668.h
rt5670-dsp.h
rt5670.c
rt5670.h
rt5677-spi.c
rt5677-spi.h
rt5677.c
rt5677.h
rt5682-i2c.c
rt5682-sdw.c
rt5682.c
rt5682.h
rt5682s.c
rt5682s.h
rt9120.c ASoC: rt9120: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:37 +01:00
sdw-mockup.c ASoC: sdw-mockup: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:53 +01:00
sgtl5000.c
sgtl5000.h
si476x.c
sigmadsp-i2c.c
sigmadsp-regmap.c
sigmadsp.c
sigmadsp.h
simple-amplifier.c
simple-mux.c
spdif_receiver.c
spdif_transmitter.c
ssm2305.c
ssm2518.c
ssm2518.h
ssm2602-i2c.c
ssm2602-spi.c
ssm2602.c
ssm2602.h
ssm4567.c
sta32x.c ASoC: sta32x: Remove redundant big endian formats 2022-05-09 12:46:16 +01:00
sta32x.h
sta350.c ASoC: sta350: Remove redundant big endian formats 2022-05-09 12:46:17 +01:00
sta350.h
sta529.c
stac9766.c
sti-sas.c
tas571x.c ASoC: tas571x: Fix the error handling of tas571x_i2c_probe() 2022-05-11 17:40:15 +01:00
tas571x.h
tas2552.c
tas2552.h
tas2562.c
tas2562.h
tas2764.c
tas2764.h
tas2770.c
tas2770.h
tas5086.c
tas5720.c
tas5720.h
tas5805m.c
tas6424.c ASoC: tas6424: Fix the error handling of tas6424_i2c_probe() 2022-05-11 17:40:16 +01:00
tas6424.h
tda7419.c
tfa989x.c
tfa9879.c
tfa9879.h
tlv320adc3xxx.c ASoC: tlv320adc3xxx: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:38 +01:00
tlv320adcx140.c ASoC: tlv320adcx140: Register a callback to disable the regulator_disable 2022-05-10 12:31:32 +01:00
tlv320adcx140.h
tlv320aic3x-i2c.c
tlv320aic3x-spi.c
tlv320aic3x.c
tlv320aic3x.h
tlv320aic23-i2c.c
tlv320aic23-spi.c
tlv320aic23.c
tlv320aic23.h
tlv320aic26.c
tlv320aic26.h
tlv320aic31xx.c
tlv320aic31xx.h
tlv320aic32x4-clk.c
tlv320aic32x4-i2c.c
tlv320aic32x4-spi.c
tlv320aic32x4.c
tlv320aic32x4.h
tlv320dac33.c
tlv320dac33.h
tpa6130a2.c
tpa6130a2.h
ts3a227e.c
ts3a227e.h
tscs42xx.c
tscs42xx.h
tscs454.c ASoC: tscs454: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:39 +01:00
tscs454.h
twl4030.c
twl6040.c
twl6040.h
uda134x.c
uda134x.h
uda1334.c
uda1380.c
uda1380.h
wcd-clsh-v2.c
wcd-clsh-v2.h
wcd-mbhc-v2.c
wcd-mbhc-v2.h
wcd934x.c ASoC: wcd934x: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:41 +01:00
wcd938x-sdw.c
wcd938x.c ASoC: wcd938x: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:51 +01:00
wcd938x.h
wcd9335.c ASoC: wcd9335: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:42 +01:00
wcd9335.h
wl1273.c
wl1273.h
wm0010.c
wm1250-ev1.c
wm2000.c ASoC: wm2000: Remove redundant endianness flag 2022-05-11 17:42:14 +01:00
wm2000.h
wm2200.c
wm2200.h
wm5100-tables.c
wm5100.c
wm5100.h
wm5102.c
wm5102.h
wm5110.c
wm5110.h
wm8350.c
wm8350.h
wm8400.c
wm8400.h
wm8510.c
wm8510.h
wm8523.c
wm8523.h
wm8524.c
wm8580.c
wm8580.h
wm8711.c
wm8711.h
wm8727.c
wm8728.c
wm8728.h
wm8731-i2c.c
wm8731-spi.c
wm8731.c
wm8731.h
wm8737.c
wm8737.h
wm8741.c
wm8741.h
wm8750.c
wm8750.h
wm8753.c
wm8753.h
wm8770.c
wm8770.h
wm8776.c
wm8776.h
wm8782.c
wm8804-i2c.c
wm8804-spi.c
wm8804.c
wm8804.h
wm8900.c
wm8900.h
wm8903.c ASoC: wm8903: Fix the error handling of wm8903_i2c_probe() 2022-05-11 17:40:17 +01:00
wm8903.h
wm8904.c
wm8904.h
wm8940.c ASoC: wm8940: add devicetree support 2022-05-09 19:04:36 +01:00
wm8940.h
wm8955.c
wm8955.h
wm8958-dsp2.c
wm8960.c
wm8960.h
wm8961.c
wm8961.h
wm8962.c
wm8962.h
wm8971.c
wm8971.h
wm8974.c
wm8974.h
wm8978.c
wm8978.h
wm8983.c
wm8983.h
wm8985.c
wm8985.h
wm8988.c
wm8988.h
wm8990.c
wm8990.h
wm8991.c
wm8991.h
wm8993.c
wm8993.h
wm8994.c
wm8994.h
wm8995.c
wm8995.h
wm8996.c
wm8996.h
wm8997.c
wm8997.h
wm8998.c
wm8998.h
wm9081.c
wm9081.h
wm9090.c ASoC: wm9090: Remove redundant endianness flag 2022-05-11 17:42:15 +01:00
wm9090.h
wm9705.c
wm9712.c
wm9713.c
wm9713.h
wm_adsp.c
wm_adsp.h
wm_hubs.c
wm_hubs.h
wsa881x.c ASoC: wsa881x: Add endianness flag in snd_soc_component_driver 2022-05-09 12:46:52 +01:00
zl38060.c