dahdi-linux/drivers/dahdi
Shaun Ruffell 4bfdd8bea5 dahdi: Remove "ddev" symlink before unregistering the span device.
This makes the order of operations for device removal symmetrical with those for
device addition. This change also eliminates the following warning when
unloading dahdi after dynamic spans have been created:

  ------------[ cut here ]------------
  WARNING: at /build/buildd/linux-3.2.0/fs/sysfs/inode.c:324 sysfs_hash_and_remove+0x92/0xa0()
  Hardware name: VirtualBox
  sysfs: can not remove 'ddev', no directory
  Modules linked in: dahdi_dynamic_loc(O-) dahdi_dynamic(O) dahdi(O) crc_ccitt
     hdlc_cisco hdlc vboxvideo(O) drm vboxsf(O) vesafb ppdev psmouse parport_pc
     serio_raw mac_hid vboxguest(O) nfsd nfs i2c_piix4 lockd fscache auth_rpcgss
     nfs_acl sunrpc ext2 lp parport e1000 [last unloaded: dahdi]
  Pid: 3533, comm: rmmod Tainted: G        W  O 3.2.0-56-generic-pae #86-Ubuntu
  Call Trace:
   [<c105ab42>] warn_slowpath_common+0x72/0xa0
   [<c11a7992>] ? sysfs_hash_and_remove+0x92/0xa0
   [<c11a7992>] ? sysfs_hash_and_remove+0x92/0xa0
   [<c105ac13>] warn_slowpath_fmt+0x33/0x40
   [<c11a7992>] sysfs_hash_and_remove+0x92/0xa0
   [<c1385427>] ? device_del+0x127/0x150
   [<c11a9bd0>] sysfs_remove_link+0x20/0x30
   [<d8a03fa3>] span_sysfs_remove+0xa3/0x170 [dahdi]
   [<c1036a88>] ? default_spin_lock_flags+0x8/0x10
   [<d89f7e5e>] _dahdi_unassign_span+0xae/0x210 [dahdi]
   [<c1053f6b>] ? __cond_resched+0x1b/0x30
   [<c15a9859>] ? _cond_resched+0x29/0x30
   [<d89f80a3>] dahdi_unregister_device+0xe3/0x190 [dahdi]
   [<d8936464>] dahdi_dynamic_unregister_driver+0x84/0x130 [dahdi_dynamic]
   [<d89284ed>] dahdi_dynamic_local_exit+0xd/0xb20 [dahdi_dynamic_loc]
   [<c1095995>] sys_delete_module+0x135/0x230
   [<c1110063>] ? pagetypeinfo_show.part.8+0x33/0x100
   [<c15b295f>] sysenter_do_call+0x12/0x28
  ---[ end trace b818e326720c8385 ]---

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
2013-11-29 15:42:07 -06:00
..
datamods wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
firmware wcaxx: Update A4B firmware to version 0b0017 2013-11-16 16:02:00 -06:00
hpec Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
oct612x oct612x: Make dependent on dahdi.ko 2013-11-24 10:09:33 -06:00
voicebus wcte12xp, wctdm24xxp, wct4xxp: Print warning about potential GPL violation w/HOTPLUG_FIRMWARE=no. 2012-04-05 20:32:37 +00:00
vpmadt032_loader Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
wcb4xxp wcb4xxp: Allocate memory in hfc_decode_st_state() with GFP_ATOMIC. 2013-01-23 16:14:07 -06:00
wct4xxp wct4xxp, wcte13xp: Move the octasic DSP code into separate module. 2013-11-11 14:39:19 -06:00
wctc4xxp wctc4xxp: Ensure the descriptors are zeroed out on start. 2013-05-31 12:10:49 -05:00
wctdm24xxp wctdm24xxp: Remove assigned callback. 2013-11-26 10:49:58 -06:00
wcte12xp wcte12xp: Reset all the framer registers when switching linemodes. 2013-05-20 17:11:21 -05:00
xpp xpp: automatic dahdi_registration by default 2013-11-24 15:34:57 +02:00
adt_lec.c wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
adt_lec.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
arith.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
biquad.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
dahdi_dummy.c dahdi_dummy: Include timer.h instead of time.h 2012-04-05 16:15:22 +00:00
dahdi_dynamic_eth.c Revert "dahdi_dynamic_eth: Move tx packet flushing to process context." 2012-12-11 10:27:56 -06:00
dahdi_dynamic_ethmf.c dahdi_dynamic_ethmf: Don't use create_proc_read_entry() 2013-05-24 00:30:33 +03:00
dahdi_dynamic_loc.c dahdi_dynamic_loc: Change and check the dyn->pvt pointer under lock. 2012-04-03 19:44:45 +00:00
dahdi_dynamic.c dahdi_dynamic: Create a span type for dynamic spans. 2013-11-24 10:09:33 -06:00
dahdi_echocan_jpah.c Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
dahdi_echocan_kb1.c Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
dahdi_echocan_mg2.c Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
dahdi_echocan_oslec.c code cleanup - refactor module_printk() 2012-02-09 15:24:40 +00:00
dahdi_echocan_sec2.c code cleanup: remove unused debug_printk() 2012-02-09 15:25:03 +00:00
dahdi_echocan_sec.c code cleanup: remove unused debug_printk() 2012-02-09 15:25:03 +00:00
dahdi_transcode.c 'dahdi_copy_string()' -> 'strlcpy()' 2011-01-03 18:26:29 +00:00
dahdi-base.c dahdi_dynamic: Create a span type for dynamic spans. 2013-11-24 10:09:33 -06:00
dahdi-sysfs-chan.c sysfs: bugfix: shorten too long file names 2013-06-23 22:12:33 +03:00
dahdi-sysfs.c dahdi: Remove "ddev" symlink before unregistering the span device. 2013-11-29 15:42:07 -06:00
dahdi-sysfs.h Remove support for kernels < 2.6.18 2012-03-13 20:09:12 +00:00
dahdi-version.c dahdi: Do not rebuild dahdi-base.c when only updating the version. 2011-02-28 14:19:09 +00:00
dahdi.h Update Digium copyright on files changed since beginning of the year. 2012-03-21 18:56:05 +00:00
ecdis.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
fir.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
fxo_modes.h wctdm24xxp, wctdm: Reduce memory used by fxo_modes array. 2011-04-04 16:26:00 +00:00
Kbuild wcte43x: Add driver for TE435/TE235 digital cards. 2013-11-11 14:39:19 -06:00
Kconfig wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
makefw.c wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
pciradio.c dahdi: Register devices instead of individual spans. 2011-10-26 18:58:14 +00:00
pciradio.rbt wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
proslic.h wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
tor2-hw.h "struct pci_device_id[]" -> "DEFINE_PCI_DEVICE_TABLE" 2011-01-03 18:26:24 +00:00
tor2.c convert span->spantype to enumerated type 2012-05-23 12:20:23 +00:00
tormenta2.rbt wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
wcaxx-base.c wcaxx: Use startup/shutdown callbacks to protect access to channel registers. 2013-11-25 16:19:28 -06:00
wcfxo.c dahdi: Remove dahdi_span.irq and move dahdi_span.irqmisses into dahdi_device. 2011-10-26 19:00:28 +00:00
wct1xxp.c convert span->spantype to enumerated type 2012-05-23 12:20:23 +00:00
wctdm.c dahdi: Remove dahdi_span.irq and move dahdi_span.irqmisses into dahdi_device. 2011-10-26 19:00:28 +00:00
wcte11xp.c convert span->spantype to enumerated type 2012-05-23 12:20:23 +00:00
wcte13xp-base.c wcte13xp: Improve maintenance functions and error counters 2013-11-11 14:39:19 -06:00
wcte43x-base.c wcte43x: Remove 'dcxo' debug attribute. 2013-11-20 09:39:12 -06:00
wcxb_flash.c wcaxx: New driver for A4A/A4B/A8A/A8B analog cards. 2013-11-11 14:39:19 -06:00
wcxb_flash.h wcaxx: New driver for A4A/A4B/A8A/A8B analog cards. 2013-11-11 14:39:19 -06:00
wcxb_spi.c wcaxx: New driver for A4A/A4B/A8A/A8B analog cards. 2013-11-11 14:39:19 -06:00
wcxb_spi.h wcaxx: New driver for A4A/A4B/A8A/A8B analog cards. 2013-11-11 14:39:19 -06:00
wcxb.c wcxb: Update the firmware meta block during flash update. 2013-11-16 16:03:19 -06:00
wcxb.h wcaxx: New driver for A4A/A4B/A8A/A8B analog cards. 2013-11-11 14:39:19 -06:00