//--------------------------------------------------------------------------- void nasrg_teardown(struct net_device *dev) { //--------------------------------------------------------------------------- int cxi; #ifndef PDCP_USE_NETLINK struct nas_priv *priv = netdev_priv(dev); #endif //PDCP_USE_NETLINK printk("nasrg_teardown: begin\n"); if (dev) { #ifndef PDCP_USE_NETLINK if (priv->irq!=-EBUSY) { *pt_nas_rg_irq=-1; rt_free_srq(priv->irq); } #endif //PDCP_USE_NETLINK #ifdef PDCP_USE_NETLINK nasrg_netlink_release(); #endif //PDCP_USE_NETLINK // for (sapi=0; sapi<NAS_SAPI_MAX; ++sapi) // close(priv->sap[sapi]); nasrg_CLASS_flush_rclassifier(); nasrg_CLASS_flush_mbmsclassifier(); for (cxi=0; cxi<NAS_CX_MAX; ++cxi) { nasrg_COMMON_flush_rb(gpriv->cx+cxi); nasrg_CLASS_flush_sclassifier(gpriv->cx+cxi); //for (sapi=0; sapi<NAS_SAPI_CX_MAX; ++sapi) // close(priv->cx[cxi].sap[sapi]); } } // check dev else { printk("nasmt_teardown: Device is null\n"); } printk("nasrg_teardown: end\n"); }
//--------------------------------------------------------------------------- // Decode CONN_LOSS_IND message from RRC void nasrg_ASCTL_DC_decode_cx_loss_ind(struct cx_entity *cx, struct nas_rg_dc_element *p){ //--------------------------------------------------------------------------- // Start debug information #ifdef GRAAL_DEBUG_DC printk("nasrg_ASCTL_DC_decode_cx_loss - begin \n"); #endif if (!cx || !p){ printk("nasrg_ASCTL_DC_decode_cx_loss - input parameter is NULL \n"); return; } // End debug information cx->state = GRAAL_IDLE; cx->iid4=0; nasrg_TOOL_imei2iid(GRAAL_NULL_IMEI, (u8 *)cx->iid6); nasrg_COMMON_flush_rb(cx); #ifdef GRAAL_DEBUG_DC printk("nasrg_ASCTL_DC_decode_cx_loss: CONN_LOSS_IND reception\n"); printk(" Primitive length %u\n",(int)(p->length)); printk(" Local Connection reference %u\n",p->nasRGDCPrimitive.conn_loss_ind.localConnectionRef); nasrg_TOOL_print_state(cx->state); #endif }