aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGravatar Jean Delvare <jdelvare@suse.de> 2014-02-25 09:43:13 +0100
committerGravatar Borislav Petkov <bp@suse.de> 2014-02-25 09:43:13 +0100
commit75135da0d68419ef8a925f4c1d5f63d8046e314d (patch)
treedb9f21d3b0131bcd7c23c510852ad4143a44f1a4 /include
parenti7core_edac: Fix PCI device reference count (diff)
downloadlinux-75135da0d68419ef8a925f4c1d5f63d8046e314d.tar.gz
linux-75135da0d68419ef8a925f4c1d5f63d8046e314d.tar.bz2
linux-75135da0d68419ef8a925f4c1d5f63d8046e314d.zip
i7300_edac: Fix device reference count
pci_get_device() decrements the reference count of "from" (last argument) so when we break off the loop successfully we have only one device reference - and we don't know which device we have. If we want a reference to each device, we must take them explicitly and let the pci_get_device() walk complete to avoid duplicate references. This is serious, as over-putting device references will cause the device to eventually disappear. Without this fix, the kernel crashes after a few insmod/rmmod cycles. Tested on an Intel S7000FC4UR system with a 7300 chipset. Signed-off-by: Jean Delvare <jdelvare@suse.de> Link: http://lkml.kernel.org/r/20140224111656.09bbb7ed@endymion.delvare Cc: Mauro Carvalho Chehab <m.chehab@samsung.com> Cc: Doug Thompson <dougthompson@xmission.com> Cc: stable@vger.kernel.org Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions