error "ib_dealloc_pd failed" when load unload ib_ipoib module
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Vivid |
Fix Released
|
Medium
|
Unassigned |
Bug Description
When we try to load and unload the ib_ipoib driver we get an error message.
Steps to reproduce:
load ib_ipoib: modprobe -v ib_ipoib
configure ip: ifconfig ib0 11.135.196.7/16
unload driver: modprobe -rv ib_ipoib
We will see this message in dmesg:
[ 709.652944] ib0: ib_dealloc_pd failed
uname output:
root@qa-
Linux qa-h-vrt-035 3.19.0-16-generic #16-Ubuntu SMP Thu Apr 30 16:09:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
The following two upstream commits fix this issue:
commit 9ab874b65930458
Author: Doug Ledford <email address hidden>
Date: Sat Feb 21 19:27:00 2015 -0500
IB/ipoib: change init sequence ordering
In preparation for using per device work queues, we need to move the
start of the neighbor thread task to after ipoib_ib_dev_init and move
the destruction of the neighbor task to before ipoib_ib_
Otherwise we will end up freeing our workqueue with work possibly
still on it.
Signed-off-by: Doug Ledford <email address hidden>
commit 6387d8d5896536b
Author: Doug Ledford <email address hidden>
Date: Sat Feb 21 19:26:59 2015 -0500
IB/ipoib: factor out ah flushing
Create a an ipoib_flush_ah and ipoib_stop_ah routines to use at
appropriate times to flush out all remaining ah entries before we shut
the device down.
Because neighbors and mcast entries can each have a reference on any
given ah, we must make sure to free all of those first before our ah
will actually have a 0 refcount and be able to be reaped.
This factoring is needed in preparation for having per-device work
queues. The original per-device workqueue code resulted in the following
error message:
<ibdev>: ib_dealloc_pd failed
That error was tracked down to this issue. With the changes to which
workqueues were flushed when, there were no flushes of the per device
workqueue after the last ah's were freed, resulting in an attempt to
dealloc the pd with outstanding resources still allocated. This code
puts the explicit flushes in the needed places to avoid that problem.
Signed-off-by: Doug Ledford <email address hidden>
---
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Jun 23 15:16 seq
crw-rw---- 1 root audio 116, 33 Jun 23 15:16 timer
AplayDevices: Error: [Errno 2] No such file or directory
ApportVersion: 2.17.2-0ubuntu1.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
DistroRelease: Ubuntu 15.04
HibernationDevice: RESUME=
IwConfig: Error: [Errno 2] No such file or directory
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: Red Hat KVM
Package: linux (not installed)
PciMultimedia:
ProcFB: 0 cirrusdrmfb
ProcKernelCmdLine: root=/dev/sda2 console=tty0 console=
ProcVersionSign
RelatedPackageV
linux-
linux-
linux-firmware 1.143
RfKill: Error: [Errno 2] No such file or directory
Tags: vivid
UdevLog: Error: [Errno 2] No such file or directory: '/var/log/udev'
Uname: Linux 3.19.0-20-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:
_MarkForUpload: True
dmi.bios.date: 01/01/2011
dmi.bios.vendor: Bochs
dmi.bios.version: Bochs
dmi.chassis.type: 1
dmi.chassis.vendor: Bochs
dmi.modalias: dmi:bvnBochs:
dmi.product.name: KVM
dmi.product.
dmi.sys.vendor: Red Hat
description: | updated |
description: | updated |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
status: | Incomplete → Triaged |
Changed in linux (Ubuntu Vivid): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Vivid): | |
assignee: | nobody → Rafael David Tinoco (inaddy) |
Changed in linux (Ubuntu): | |
assignee: | nobody → Rafael David Tinoco (inaddy) |
assignee: | Rafael David Tinoco (inaddy) → nobody |
Changed in linux (Ubuntu Vivid): | |
assignee: | Rafael David Tinoco (inaddy) → nobody |
Changed in linux (Ubuntu): | |
status: | Triaged → In Progress |
Changed in linux (Ubuntu Vivid): | |
status: | Triaged → In Progress |
Changed in linux (Ubuntu): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Vivid): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Vivid): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-vivid removed: verification-needed-vivid |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu): | |
status: | Fix Committed → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:
apport-collect 1467912
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.