From: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Date: Thu, 15 Nov 2012 15:15:48 +0000
Subject: xpp: pre/post_unregister: not for the EC
Origin: http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commit;h=c0eebd73bb29f1187b38cc3a41f1a86579e481ac

Don't run the pre- and post-unregister hooks on a non-phone XPD
(practically: the echo canceller). This fixes a panic with manual
'dahdi_registertion off' as it is now called for the whole device
(regression of 2.6.x).

Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

---
 drivers/dahdi/xpp/xpp_dahdi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dahdi/xpp/xpp_dahdi.c b/drivers/dahdi/xpp/xpp_dahdi.c
index b9fa49a..b2f7008 100644
--- a/drivers/dahdi/xpp/xpp_dahdi.c
+++ b/drivers/dahdi/xpp/xpp_dahdi.c
@@ -1083,7 +1083,7 @@ int xpd_dahdi_postregister(xpd_t *xpd)
  */
 void xpd_dahdi_preunregister(xpd_t *xpd)
 {
-	if (!xpd)
+	if (!xpd || !IS_PHONEDEV(xpd))
 		return;
 	XPD_DBG(DEVICES, xpd, "\n");
 	update_xpd_status(xpd, DAHDI_ALARM_NOTOPEN);
@@ -1103,7 +1103,7 @@ void xpd_dahdi_preunregister(xpd_t *xpd)
 
 void xpd_dahdi_postunregister(xpd_t *xpd)
 {
-	if (!xpd)
+	if (!xpd || !IS_PHONEDEV(xpd))
 		return;
 	atomic_dec(&PHONEDEV(xpd).dahdi_registered);
 	atomic_dec(&num_registered_spans);
-- 
1.7.10.4

