struct claw_privbk *privptr=NULL;
 
 #ifdef FUNCTRACE
-       printk(KERN_INFO "%s Enter\n",__FUNCTION__);
+       printk(KERN_INFO "%s Enter\n",__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"probe");
        if (!get_device(&cgdev->dev))
                probe_error(cgdev);
                put_device(&cgdev->dev);
                printk(KERN_WARNING "Out of memory %s %s Exit Line %d \n",
-                       cgdev->cdev[0]->dev.bus_id,__FUNCTION__,__LINE__);
+                       cgdev->cdev[0]->dev.bus_id,__func__,__LINE__);
                CLAW_DBF_TEXT_(2,setup,"probex%d",-ENOMEM);
                return -ENOMEM;
        }
                 probe_error(cgdev);
                put_device(&cgdev->dev);
                printk(KERN_WARNING "Out of memory %s %s Exit Line %d \n",
-                       cgdev->cdev[0]->dev.bus_id,__FUNCTION__,__LINE__);
+                       cgdev->cdev[0]->dev.bus_id,__func__,__LINE__);
                CLAW_DBF_TEXT_(2,setup,"probex%d",-ENOMEM);
                 return -ENOMEM;
         }
                probe_error(cgdev);
                put_device(&cgdev->dev);
                printk(KERN_WARNING "add_files failed %s %s Exit Line %d \n",
-                       cgdev->cdev[0]->dev.bus_id,__FUNCTION__,__LINE__);
+                       cgdev->cdev[0]->dev.bus_id,__func__,__LINE__);
                CLAW_DBF_TEXT_(2,setup,"probex%d",rc);
                return rc;
        }
        cgdev->dev.driver_data = privptr;
 #ifdef FUNCTRACE
         printk(KERN_INFO "claw:%s exit on line %d, "
-               "rc = 0\n",__FUNCTION__,__LINE__);
+               "rc = 0\n",__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(2,setup,"prbext 0");
 
         struct chbk *p_ch;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"claw_tx");
         p_ch=&privptr->channel[WRITE];
                 privptr->stats.tx_dropped++;
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s: %s() exit on line %d, rc = EIO\n",
-                       dev->name,__FUNCTION__, __LINE__);
+                       dev->name,__func__, __LINE__);
 #endif
                CLAW_DBF_TEXT_(2,trace,"clawtx%d",-EIO);
                 return -EIO;
         spin_unlock_irqrestore(get_ccwdev_lock(p_ch->cdev), saveflags);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s exit on line %d, rc = %d\n",
-               dev->name, __FUNCTION__, __LINE__, rc);
+               dev->name, __func__, __LINE__, rc);
 #endif
        CLAW_DBF_TEXT_(4,trace,"clawtx%d",rc);
         return rc;
 #ifdef IOTRACE
                printk(KERN_INFO "%s: %s() Packed %d len %d\n",
                        p_env->ndev->name,
-                       __FUNCTION__,pkt_cnt,new_skb->len);
+                       __func__,pkt_cnt,new_skb->len);
 #endif
        }
        CLAW_DBF_TEXT(4,trace,"PackSKBx");
        struct claw_privbk  *privptr=dev->priv;
        int buff_size;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
 #ifdef DEBUGMSG
         printk(KERN_INFO "variable dev =\n");
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s:%s Exit on line %d, rc=EINVAL\n",
                dev->name,
-               __FUNCTION__, __LINE__);
+               __func__, __LINE__);
 #endif
                 return -EINVAL;
         }
         dev->mtu = new_mtu;
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d\n",dev->name,
-       __FUNCTION__, __LINE__);
+       __func__, __LINE__);
 #endif
         return 0;
 }  /*   end of claw_change_mtu */
         struct ccwbk *p_buf;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"open");
        if (!dev || (dev->name[0] == 0x00)) {
                if (rc) {
                        printk(KERN_INFO "%s:%s Exit on line %d, rc=ENOMEM\n",
                        dev->name,
-                       __FUNCTION__, __LINE__);
+                       __func__, __LINE__);
                        CLAW_DBF_TEXT(2,trace,"openmem");
                        return -ENOMEM;
                }
                 claw_clear_busy(dev);
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s:%s Exit on line %d, rc=EIO\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
                CLAW_DBF_TEXT(2,trace,"open EIO");
                 return -EIO;
 
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d, rc=0\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"openok");
         return 0;
 
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s enter  \n",__FUNCTION__);
+       printk(KERN_INFO "%s enter  \n",__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"clawirq");
         /* Bypass all 'unsolicited interrupts' */
                         cdev->dev.bus_id,irb->scsw.cstat, irb->scsw.dstat);
 #ifdef FUNCTRACE
                 printk(KERN_INFO "claw: %s() "
-                       "exit on line %d\n",__FUNCTION__,__LINE__);
+                       "exit on line %d\n",__func__,__LINE__);
 #endif
                CLAW_DBF_TEXT(2,trace,"badirq");
                 return;
 #endif
 #ifdef FUNCTRACE
                printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
                CLAW_DBF_TEXT(2,trace,"chanchk");
                 /* return; */
                        (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)))) {
 #ifdef FUNCTRACE
                                 printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                 return;
                         }
 #endif
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s:%s Exit on line %d\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                        CLAW_DBF_TEXT(4,trace,"stop");
                         return;
                        (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)))) {
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                CLAW_DBF_TEXT(4,trace,"haltio");
                                 return;
 #endif
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s:%s Exit on line %d\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                        CLAW_DBF_TEXT(4,trace,"haltio");
                         return;
                                 }
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                        CLAW_DBF_TEXT(4,trace,"notrdy");
                                         return;
                                }
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                CLAW_DBF_TEXT(4,trace,"PCI_read");
                                 return;
                         (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)))) {
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                CLAW_DBF_TEXT(4,trace,"SPend_rd");
                                 return;
 #endif
 #ifdef FUNCTRACE
                        printk(KERN_INFO "%s:%s Exit on line %d\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                        CLAW_DBF_TEXT(4,trace,"RdIRQXit");
                         return;
                                 }
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                CLAW_DBF_TEXT(4,trace,"rstrtwrt");
                                 return;
                        (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)))) {
 #ifdef FUNCTRACE
                                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                                       dev->name,__FUNCTION__,__LINE__);
+                                       dev->name,__func__,__LINE__);
 #endif
                                CLAW_DBF_TEXT(4,trace,"writeUE");
                                 return;
 #endif
 #ifdef FUNCTRACE
                        printk(KERN_INFO "%s:%s Exit on line %d\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                        CLAW_DBF_TEXT(4,trace,"StWtExit");
                         return;
                                "state=%d\n",dev->name,p_ch->claw_state);
 #ifdef FUNCTRACE
                        printk(KERN_INFO "%s:%s Exit on line %d\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                        CLAW_DBF_TEXT(2,trace,"badIRQ");
                         return;
        p_ch = (struct chbk *) data;
         dev = (struct net_device *)p_ch->ndev;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: variable p_ch =\n",dev->name);
        CLAW_DBF_TEXT(4,trace,"TskletXt");
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
         return;
 }       /*    end of claw_irq_bh    */
         if (!privptr)
                 return 0;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"release");
 #ifdef DEBUGMSG
        if(privptr->buffs_alloc != 1) {
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
                CLAW_DBF_TEXT(4,trace,"none2fre");
                return 0;
         }
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"rlsexit");
         return 0;
 
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
         printk(KERN_INFO "claw: variable p_ch =\n");
         dumpit((char *) p_ch, sizeof(struct chbk));
 #endif
         if (p_ch->claw_state == CLAW_STOP) {
 #ifdef FUNCTRACE
                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                       dev->name,__FUNCTION__,__LINE__);
+                       dev->name,__func__,__LINE__);
 #endif
                return;
         }
 #ifdef DEBUGMSG
         printk( KERN_INFO "%s:%s  state-%02x\n" ,
                dev->name,
-               __FUNCTION__,
+               __func__,
                p_ch->claw_state);
 #endif
        claw_strt_out_IO( dev );
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"rtry_xit");
         return;
        int     rc;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",p_ch->ndev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",p_ch->ndev->name,__func__);
         printk(KERN_INFO "%s: variable p_ch =\n",p_ch->ndev->name);
         dumpit((char *) p_ch, sizeof(struct chbk));
 #endif
 
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
         return;
 }      /* end of claw_write_next      */
 claw_timer ( struct chbk * p_ch )
 {
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Entry\n",p_ch->ndev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Entry\n",p_ch->ndev->name,__func__);
         printk(KERN_INFO "%s: variable p_ch =\n",p_ch->ndev->name);
         dumpit((char *) p_ch, sizeof(struct chbk));
 #endif
         wake_up(&p_ch->wait);
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               p_ch->ndev->name,__FUNCTION__,__LINE__);
+               p_ch->ndev->name,__func__,__LINE__);
 #endif
         return;
 }      /* end of claw_timer  */
        int     order_of_mag=1;         /* assume 2 pages */
        int     nump=2;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s Enter pages = %d \n",__FUNCTION__,num_of_pages);
+       printk(KERN_INFO "%s Enter pages = %d \n",__func__,num_of_pages);
 #endif
        CLAW_DBF_TEXT_(5,trace,"pages%d",num_of_pages);
        if (num_of_pages == 1)   {return 0; }  /* magnitude of 0 = 1 page */
        if (order_of_mag > 9) { order_of_mag = 9; }  /* I know it's paranoid */
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s Exit on line %d, order = %d\n",
-       __FUNCTION__,__LINE__, order_of_mag);
+       __func__,__LINE__, order_of_mag);
 #endif
        CLAW_DBF_TEXT_(5,trace,"mag%d",order_of_mag);
        return order_of_mag;
         struct ccwbk*  p_buf;
 #endif
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
 #ifdef DEBUGMSG
         printk(KERN_INFO "dev\n");
         if ( p_first==NULL) {
 #ifdef FUNCTRACE
                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                       dev->name,__FUNCTION__,__LINE__);
+                       dev->name,__func__,__LINE__);
 #endif
                CLAW_DBF_TEXT(4,trace,"addexit");
                 return 0;
         if ( privptr-> p_read_active_first ==NULL ) {
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s:%s p_read_active_first == NULL \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
                 printk(KERN_INFO "%s:%s Read active first/last changed \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
                 privptr-> p_read_active_first= p_first;  /*    set new first */
                 privptr-> p_read_active_last = p_last;   /*    set new last  */
 
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s:%s Read in progress \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
                 /* set up TIC ccw  */
                 temp_ccw.cda= (__u32)__pa(&p_first->read);
                 privptr->p_read_active_last=p_last;
         } /* end of if ( privptr-> p_read_active_first ==NULL)  */
 #ifdef IOTRACE
-        printk(KERN_INFO "%s:%s  dump p_last CCW BK \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s  dump p_last CCW BK \n",dev->name,__func__);
         dumpit((char *)p_last, sizeof(struct ccwbk));
-        printk(KERN_INFO "%s:%s  dump p_end CCW BK \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s  dump p_end CCW BK \n",dev->name,__func__);
         dumpit((char *)p_end, sizeof(struct endccw));
 
-        printk(KERN_INFO "%s:%s dump p_first CCW BK \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s dump p_first CCW BK \n",dev->name,__func__);
         dumpit((char *)p_first, sizeof(struct ccwbk));
         printk(KERN_INFO "%s:%s Dump Active CCW chain \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
         p_buf=privptr->p_read_active_first;
         while (p_buf!=NULL) {
                 dumpit((char *)p_buf, sizeof(struct ccwbk));
 #endif
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"addexit");
         return 0;
 {
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() > enter  \n",
-               cdev->dev.bus_id,__FUNCTION__);
+               cdev->dev.bus_id,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"ccwret");
 #ifdef DEBUGMSG
         }
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() > exit on line %d\n",
-               cdev->dev.bus_id,__FUNCTION__,__LINE__);
+               cdev->dev.bus_id,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"ccwret");
 }    /*    end of ccw_check_return_code   */
        struct net_device *dev = p_ch->ndev;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s: %s() > enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s: %s() > enter\n",dev->name,__func__);
 #endif
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: variable dev =\n",dev->name);
 
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
 }   /*    end of ccw_check_unit_check    */
 
        int    rc=0;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s > enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s > enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"findlink");
 #ifdef DEBUGMSG
 
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
         return 0;
 }    /*    end of find_link    */
         struct ccwbk                   *p_buf;
 #endif
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s: %s() > enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s: %s() > enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"hw_tx");
 #ifdef DEBUGMSG
         p_ch=(struct chbk *)&privptr->channel[WRITE];
        p_env =privptr->p_env;
 #ifdef IOTRACE
-        printk(KERN_INFO "%s: %s() dump sk_buff  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s: %s() dump sk_buff  \n",dev->name,__func__);
         dumpit((char *)skb ,sizeof(struct sk_buff));
 #endif
        claw_free_wrt_buf(dev); /* Clean up free chain if posible */
         while (len_of_data > 0) {
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: %s() length-of-data is %ld \n",
-                       dev->name ,__FUNCTION__,len_of_data);
+                       dev->name ,__func__,len_of_data);
                 dumpit((char *)pDataAddress ,64);
 #endif
                 p_this_ccw=privptr->p_write_free_chain;  /* get a block */
                 p_last_ccw=p_this_ccw;      /* save new last block */
 #ifdef IOTRACE
                printk(KERN_INFO "%s: %s() > CCW and Buffer %ld bytes long \n",
-                       dev->name,__FUNCTION__,bytesInThisBuffer);
+                       dev->name,__func__,bytesInThisBuffer);
                 dumpit((char *)p_this_ccw, sizeof(struct ccwbk));
                 dumpit((char *)p_this_ccw->p_buffer, 64);
 #endif
 
 #ifdef IOTRACE
         printk(KERN_INFO "%s: %s() >  Dump Active CCW chain \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
         p_buf=privptr->p_write_active_first;
         while (p_buf!=NULL) {
                 dumpit((char *)p_buf, sizeof(struct ccwbk));
         /*      if write free count is zero , set NOBUFFER       */
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() > free_count is %d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                (int) privptr->write_free_count );
 #endif
        if (privptr->write_free_count==0) {
 Done:
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() > exit on line %d, rc = %d \n",
-               dev->name,__FUNCTION__,__LINE__, rc);
+               dev->name,__func__,__LINE__, rc);
 #endif
        return(rc);
 }    /*    end of claw_hw_tx    */
         addr_t   real_TIC_address;
         int i,j;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s: %s() enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s: %s() enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"init_ccw");
 #ifdef DEBUGMSG
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() "
                "ccw_blocks_required=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                ccw_blocks_required);
         printk(KERN_INFO "%s: %s() "
                "PAGE_SIZE=0x%x\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                (unsigned int)PAGE_SIZE);
         printk(KERN_INFO "%s: %s() > "
                "PAGE_MASK=0x%x\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                (unsigned int)PAGE_MASK);
 #endif
         /*
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() > ccw_blocks_perpage=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                ccw_blocks_perpage);
         printk(KERN_INFO "%s: %s() > ccw_pages_required=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                ccw_pages_required);
 #endif
         /*
 #ifdef DEBUGMSG
         if (privptr->p_env->read_size < PAGE_SIZE) {
             printk(KERN_INFO "%s: %s() reads_perpage=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                claw_reads_perpage);
         }
         else {
             printk(KERN_INFO "%s: %s() pages_perread=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                privptr->p_buff_pages_perread);
         }
         printk(KERN_INFO "%s: %s() read_pages=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                claw_read_pages);
         if (privptr->p_env->write_size < PAGE_SIZE) {
             printk(KERN_INFO "%s: %s() writes_perpage=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                claw_writes_perpage);
         }
         else {
             printk(KERN_INFO "%s: %s() pages_perwrite=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                privptr->p_buff_pages_perwrite);
         }
         printk(KERN_INFO "%s: %s() write_pages=%d\n",
-               dev->name,__FUNCTION__,
+               dev->name,__func__,
                claw_write_pages);
 #endif
 
                         printk(KERN_INFO "%s: %s()  "
                                "__get_free_pages for CCWs failed : "
                                "pages is %d\n",
-                                dev->name,__FUNCTION__,
+                               dev->name,__func__,
                                ccw_pages_required );
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s: %s() > "
                                "exit on line %d, rc = ENOMEM\n",
-                               dev->name,__FUNCTION__,
+                               dev->name,__func__,
                                 __LINE__);
 #endif
                         return -ENOMEM;
         /*                              Initialize ending CCW block       */
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() begin initialize ending CCW blocks\n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
 
         p_endccw=privptr->p_end_ccw;
 
 #ifdef IOTRACE
         printk(KERN_INFO "%s: %s() dump claw ending CCW BK \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
         dumpit((char *)p_endccw, sizeof(struct endccw));
 #endif
 
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s()  Begin build a chain of CCW buffer \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
         p_buff=privptr->p_buff_ccw;
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() "
                "End build a chain of CCW buffer \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
         p_buf=p_free_chain;
         while (p_buf!=NULL) {
                 dumpit((char *)p_buf, sizeof(struct ccwbk));
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() "
                "Begin initialize ClawSignalBlock \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
         if (privptr->p_claw_signal_blk==NULL) {
                 privptr->p_claw_signal_blk=p_free_chain;
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() >  End initialize "
                "ClawSignalBlock\n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
         dumpit((char *)privptr->p_claw_signal_blk, sizeof(struct ccwbk));
 #endif
 
                 if (privptr->p_buff_write==NULL) {
                         printk(KERN_INFO "%s: %s() __get_free_pages for write"
                                " bufs failed : get is for %d pages\n",
-                                dev->name,__FUNCTION__,claw_write_pages );
+                               dev->name,__func__,claw_write_pages );
                         free_pages((unsigned long)privptr->p_buff_ccw,
                           (int)pages_to_order_of_mag(privptr->p_buff_ccw_num));
                         privptr->p_buff_ccw=NULL;
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s: %s() > exit on line %d,"
                                "rc = ENOMEM\n",
-                               dev->name,__FUNCTION__,__LINE__);
+                               dev->name,__func__,__LINE__);
 #endif
                         return -ENOMEM;
                 }
                        ccw_pages_required * PAGE_SIZE);
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: %s() Begin build claw write free "
-                       "chain \n",dev->name,__FUNCTION__);
+                       "chain \n",dev->name,__func__);
 #endif
                 privptr->p_write_free_chain=NULL;
 
 #ifdef IOTRACE
                    printk(KERN_INFO "%s:%s __get_free_pages "
                    "for writes buf: get for %d pages\n",
-                   dev->name,__FUNCTION__,
+                   dev->name,__func__,
                    privptr->p_buff_pages_perwrite);
 #endif
                    if (p_buff==NULL) {
                        printk(KERN_INFO "%s:%s __get_free_pages "
                                "for writes buf failed : get is for %d pages\n",
                                dev->name,
-                               __FUNCTION__,
+                               __func__,
                                privptr->p_buff_pages_perwrite );
                         free_pages((unsigned long)privptr->p_buff_ccw,
                              (int)pages_to_order_of_mag(
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s: %s exit on line %d, rc = ENOMEM\n",
                        dev->name,
-                       __FUNCTION__,
+                       __func__,
                        __LINE__);
 #endif
                         return -ENOMEM;
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s:%s  End build claw write free chain \n",
-       dev->name,__FUNCTION__);
+       dev->name,__func__);
         p_buf=privptr->p_write_free_chain;
         while (p_buf!=NULL) {
                 dumpit((char *)p_buf, sizeof(struct ccwbk));
                         printk(KERN_INFO "%s: %s() "
                                "__get_free_pages for read buf failed : "
                                "get is for %d pages\n",
-                                dev->name,__FUNCTION__,claw_read_pages );
+                               dev->name,__func__,claw_read_pages );
                         free_pages((unsigned long)privptr->p_buff_ccw,
                                (int)pages_to_order_of_mag(
                                        privptr->p_buff_ccw_num));
                         privptr->p_buff_write=NULL;
 #ifdef FUNCTRACE
                         printk(KERN_INFO "%s: %s() > exit on line %d, rc ="
-                               " ENOMEM\n",dev->name,__FUNCTION__,__LINE__);
+                               " ENOMEM\n",dev->name,__func__,__LINE__);
 #endif
                         return -ENOMEM;
                 }
                 */
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: %s() Begin build claw read free chain \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
                 p_buff=privptr->p_buff_read;
                 for (i=0 ; i< privptr->p_env->read_buffers ; i++) {
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() Begin build claw read free chain \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
                 for (i=0 ; i< privptr->p_env->read_buffers ; i++) {
                         p_buff = (void *)__get_free_pages(__GFP_DMA,
                         if (p_buff==NULL) {
                                 printk(KERN_INFO "%s: %s() __get_free_pages for read "
                                        "buf failed : get is for %d pages\n",
-                                       dev->name,__FUNCTION__,
+                                       dev->name,__func__,
                                         privptr->p_buff_pages_perread );
                                 free_pages((unsigned long)privptr->p_buff_ccw,
                                        (int)pages_to_order_of_mag(privptr->p_buff_ccw_num));
                                 privptr->p_buff_write=NULL;
 #ifdef FUNCTRACE
                                 printk(KERN_INFO "%s: %s() exit on line %d, rc = ENOMEM\n",
-                                       dev->name,__FUNCTION__,
+                                       dev->name,__func__,
                                        __LINE__);
 #endif
                                 return -ENOMEM;
         }       /*  pBuffread = NULL */
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s: %s() >  End build claw read free chain \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
         p_buf=p_first_CCWB;
         while (p_buf!=NULL) {
                 dumpit((char *)p_buf, sizeof(struct ccwbk));
        privptr->buffs_alloc = 1;
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
         return 0;
 }    /*    end of init_ccw_bk */
 {
   struct claw_privbk *privptr;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s enter  \n",__FUNCTION__);
+       printk(KERN_INFO "%s enter  \n",__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"proberr");
 #ifdef DEBUGMSG
-        printk(KERN_INFO "%s variable cgdev =\n",__FUNCTION__);
+       printk(KERN_INFO "%s variable cgdev =\n",__func__);
         dumpit((char *) cgdev, sizeof(struct ccwgroup_device));
 #endif
         privptr=(struct claw_privbk *)cgdev->dev.driver_data;
         }
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s > exit on line %d\n",
-                __FUNCTION__,__LINE__);
+                __func__,__LINE__);
 #endif
 
         return;
         struct chbk *p_ch = NULL;
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() > enter  \n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"clw_cntl");
 #ifdef DEBUGMSG
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s: %s() > "
                        "exit on line %d, rc=0\n",
-                       dev->name,__FUNCTION__,__LINE__);
+                       dev->name,__func__,__LINE__);
 #endif
                 return 0;
         }
 
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s() exit on line %d, rc = 0\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
 
         return 0;
         struct sk_buff                         *skb;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s > enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s > enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"sndcntl");
 #ifdef DEBUGMSG
         skb = dev_alloc_skb(sizeof(struct clawctl));
         if (!skb) {
                 printk(  "%s:%s low on mem, returning...\n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #ifdef DEBUG
                 printk(KERN_INFO "%s:%s Exit, rc = ENOMEM\n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
                 return -ENOMEM;
         }
                claw_hw_tx(skb, dev, 0);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
 
         return 0;
         struct clawctl            *p_ctl;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"snd_conn");
 #ifdef  DEBUGMSG
         if ( privptr->system_validate_comp==0x00 ) {
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s:%s Exit on line %d, rc = 1\n",
-                       dev->name,__FUNCTION__,__LINE__);
+                       dev->name,__func__,__LINE__);
 #endif
                 return rc;
         }
                                HOST_APPL_NAME, privptr->p_env->api_type);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d, rc = %d\n",
-               dev->name,__FUNCTION__,__LINE__, rc);
+               dev->name,__func__,__LINE__, rc);
 #endif
         return rc;
 
         struct conncmd *  p_connect;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"snd_dsc");
 #ifdef  DEBUGMSG
                 p_connect->host_name, p_connect->WS_name);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d, rc = %d\n",
-               dev->name,__FUNCTION__, __LINE__, rc);
+               dev->name,__func__, __LINE__, rc);
 #endif
         return rc;
 }     /*   end of claw_snd_disc    */
 
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Enter\n",
-               dev->name,__FUNCTION__);
+               dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"chkresp");
 #ifdef DEBUGMSG
                p_env->adapter_name  );
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d, rc = %d\n",
-               dev->name,__FUNCTION__,__LINE__, rc);
+               dev->name,__func__,__LINE__, rc);
 #endif
         return rc;
 }     /*    end of claw_snd_sys_validate_rsp    */
         int rc;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"conn_req");
 #ifdef DEBUGMSG
         rc=claw_snd_conn_req(dev, 1);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d, rc = %d\n",
-               dev->name,__FUNCTION__,__LINE__, rc);
+               dev->name,__func__,__LINE__, rc);
 #endif
         return rc;
 }    /*   end of claw_strt_conn_req   */
 {
         struct claw_privbk *privptr;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"stats");
         privptr = dev->priv;
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
         return &privptr->stats;
 }     /*   end of claw_stats   */
        int     p=0;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s enter  \n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(4,trace,"unpkread");
         p_first_ccw=NULL;
                 if ((p_this_ccw->header.opcode & MORE_to_COME_FLAG)!=0) {
 #ifdef DEBUGMSG
                         printk(KERN_INFO "%s: %s > More_to_come is ON\n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
                         mtc_this_frm=1;
                         if (p_this_ccw->header.length!=
 #ifdef DEBUGMSG
                         printk(KERN_INFO "%s:%s goto next "
                                "frame from MoretoComeSkip \n",
-                               dev->name,__FUNCTION__);
+                               dev->name,__func__);
 #endif
                         goto NextFrame;
                 }
 #ifdef DEBUGMSG
                         printk(KERN_INFO "%s:%s goto next "
                                "frame from claw_process_control \n",
-                               dev->name,__FUNCTION__);
+                               dev->name,__func__);
 #endif
                        CLAW_DBF_TEXT(4,trace,"UnpkCntl");
                         goto NextFrame;
                 if (privptr->mtc_logical_link<0) {
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: %s mtc_logical_link < 0  \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
 
                 /*
                         printk(KERN_INFO "%s: %s > goto next "
                                "frame from MoretoComeSkip \n",
                                dev->name,
-                               __FUNCTION__);
+                               __func__);
                         printk(KERN_INFO "      bytes_to_mov %d > (MAX_ENVELOPE_"
                                "SIZE-privptr->mtc_offset %d)\n",
                                bytes_to_mov,(MAX_ENVELOPE_SIZE- privptr->mtc_offset));
                }
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: %s() received data \n",
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
                if (p_env->packing == DO_PACKED)
                        dumpit((char *)p_packd+sizeof(struct clawph),32);
                else
                        dumpit((char *)p_this_ccw->p_buffer, 32);
                printk(KERN_INFO "%s: %s() bytelength %d \n",
-                       dev->name,__FUNCTION__,bytes_to_mov);
+                       dev->name,__func__,bytes_to_mov);
 #endif
                 if (mtc_this_frm==0) {
                         len_of_data=privptr->mtc_offset+bytes_to_mov;
 #ifdef DEBUGMSG
                                 printk(KERN_INFO "%s: %s() netif_"
                                        "rx(skb) completed \n",
-                                       dev->name,__FUNCTION__);
+                                       dev->name,__func__);
 #endif
                         }
                         else {
                                 privptr->stats.rx_dropped++;
                                 printk(KERN_WARNING "%s: %s() low on memory\n",
-                               dev->name,__FUNCTION__);
+                               dev->name,__func__);
                         }
                         privptr->mtc_offset=0;
                         privptr->mtc_logical_link=-1;
 
 #ifdef IOTRACE
         printk(KERN_INFO "%s:%s processed frame is %d \n",
-               dev->name,__FUNCTION__,i);
+               dev->name,__func__,i);
         printk(KERN_INFO "%s:%s  F:%lx L:%lx\n",
                dev->name,
-               __FUNCTION__,
+               __func__,
                (unsigned long)p_first_ccw,
                (unsigned long)p_last_ccw);
 #endif
         claw_strt_read(dev, LOCK_YES);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s: %s exit on line %d\n",
-               dev->name, __FUNCTION__, __LINE__);
+               dev->name, __func__, __LINE__);
 #endif
         return;
 }     /*  end of unpack_read   */
         p_ch=&privptr->channel[READ];
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter  \n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter  \n",dev->name,__func__);
         printk(KERN_INFO "%s: variable lock = %d, dev =\n",dev->name, lock);
         dumpit((char *) dev, sizeof(struct net_device));
 #endif
         }
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s:%s state-%02x\n" ,
-               dev->name,__FUNCTION__, p_ch->claw_state);
+               dev->name,__func__, p_ch->claw_state);
 #endif
         if (lock==LOCK_YES) {
                 spin_lock_irqsave(get_ccwdev_lock(p_ch->cdev), saveflags);
         if (test_and_set_bit(0, (void *)&p_ch->IO_active) == 0) {
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s: HOT READ started in %s\n" ,
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
                 p_clawh=(struct clawh *)privptr->p_claw_signal_blk;
                 dumpit((char *)&p_clawh->flag , 1);
 #endif
        else {
 #ifdef DEBUGMSG
                printk(KERN_INFO "%s: No READ started by %s() In progress\n" ,
-                       dev->name,__FUNCTION__);
+                       dev->name,__func__);
 #endif
                CLAW_DBF_TEXT(2,trace,"ReadAct");
        }
         }
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
        CLAW_DBF_TEXT(4,trace,"StRdExit");
         return;
         struct ccwbk           *p_first_ccw;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        if (!dev) {
                return;
 
 #ifdef DEBUGMSG
         printk(KERN_INFO "%s:%s state-%02x\n" ,
-               dev->name,__FUNCTION__,p_ch->claw_state);
+               dev->name,__func__,p_ch->claw_state);
 #endif
         CLAW_DBF_TEXT(4,trace,"strt_io");
         p_first_ccw=privptr->p_write_active_first;
         if (p_first_ccw == NULL) {
 #ifdef FUNCTRACE
                 printk(KERN_INFO "%s:%s Exit on line %d\n",
-                       dev->name,__FUNCTION__,__LINE__);
+                       dev->name,__func__,__LINE__);
 #endif
                 return;
         }
         if (test_and_set_bit(0, (void *)&p_ch->IO_active) == 0) {
                 parm = (unsigned long) p_ch;
 #ifdef DEBUGMSG
-                printk(KERN_INFO "%s:%s do_io \n" ,dev->name,__FUNCTION__);
+               printk(KERN_INFO "%s:%s do_io \n" ,dev->name,__func__);
                 dumpit((char *)p_first_ccw, sizeof(struct ccwbk));
 #endif
                CLAW_DBF_TEXT(2,trace,"StWrtIO");
         dev->trans_start = jiffies;
 #ifdef FUNCTRACE
        printk(KERN_INFO "%s:%s Exit on line %d\n",
-               dev->name,__FUNCTION__,__LINE__);
+               dev->name,__func__,__LINE__);
 #endif
 
         return;
         struct ccwbk*p_buf;
 #endif
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
         printk(KERN_INFO "%s: free count = %d  variable dev =\n",
                dev->name,privptr->write_free_count);
 #endif
                 privptr->p_write_active_last=NULL;
 #ifdef DEBUGMSG
                 printk(KERN_INFO "%s:%s p_write_"
-                       "active_first==NULL\n",dev->name,__FUNCTION__);
+                       "active_first==NULL\n",dev->name,__func__);
 #endif
         }
 #ifdef IOTRACE
        CLAW_DBF_TEXT_(4,trace,"FWC=%d",privptr->write_free_count);
 #ifdef FUNCTRACE
         printk(KERN_INFO "%s:%s Exit on line %d free_count =%d\n",
-               dev->name,__FUNCTION__, __LINE__,privptr->write_free_count);
+               dev->name,__func__, __LINE__,privptr->write_free_count);
 #endif
         return;
 }
 {
        struct claw_privbk *privptr;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"free_dev");
 
 #endif
        CLAW_DBF_TEXT(2,setup,"feee_ok");
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Exit\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Exit\n",dev->name,__func__);
 #endif
 }
 
 claw_init_netdevice(struct net_device * dev)
 {
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"init_dev");
        CLAW_DBF_TEXT_(2,setup,"%s",dev->name);
        if (!dev) {
         printk(KERN_WARNING "claw:%s BAD Device exit line %d\n",
-               __FUNCTION__,__LINE__);
+               __func__,__LINE__);
                CLAW_DBF_TEXT(2,setup,"baddev");
                return;
        }
        dev->tx_queue_len = 1300;
        dev->flags = IFF_POINTOPOINT | IFF_NOARP;
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Exit\n",dev->name,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Exit\n",dev->name,__func__);
 #endif
        CLAW_DBF_TEXT(2,setup,"initok");
        return;
        struct ccw_dev_id dev_id;
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "%s:%s Enter\n",cdev->dev.bus_id,__FUNCTION__);
+       printk(KERN_INFO "%s:%s Enter\n",cdev->dev.bus_id,__func__);
 #endif
        CLAW_DBF_TEXT_(2,setup,"%s",cdev->dev.bus_id);
        privptr->channel[i].flag  = i+1;   /* Read is 1 Write is 2 */
        p_ch->devno = dev_id.devno;
        if ((p_ch->irb = kzalloc(sizeof (struct irb),GFP_KERNEL)) == NULL) {
                printk(KERN_WARNING "%s Out of memory in %s for irb\n",
-                       p_ch->id,__FUNCTION__);
+                       p_ch->id,__func__);
 #ifdef FUNCTRACE
                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                       p_ch->id,__FUNCTION__,__LINE__);
+                       p_ch->id,__func__,__LINE__);
 #endif
                return -ENOMEM;
        }
 #ifdef FUNCTRACE
                printk(KERN_INFO "%s:%s Exit on line %d\n",
-                       cdev->dev.bus_id,__FUNCTION__,__LINE__);
+                       cdev->dev.bus_id,__func__,__LINE__);
 #endif
        return 0;
 }
        int ret;
        struct ccw_dev_id dev_id;
 
-       pr_debug("%s() called\n", __FUNCTION__);
+       pr_debug("%s() called\n", __func__);
        printk(KERN_INFO "claw: add for %s\n",cgdev->cdev[READ]->dev.bus_id);
        CLAW_DBF_TEXT(2,setup,"new_dev");
        privptr = cgdev->dev.driver_data;
        }
        dev = alloc_netdev(0,"claw%d",claw_init_netdevice);
        if (!dev) {
-               printk(KERN_WARNING "%s:alloc_netdev failed\n",__FUNCTION__);
+               printk(KERN_WARNING "%s:alloc_netdev failed\n",__func__);
                goto out;
        }
        dev->priv = privptr;
        struct net_device *ndev;
        int     ret;
 
-       pr_debug("%s() called\n", __FUNCTION__);
+       pr_debug("%s() called\n", __func__);
        CLAW_DBF_TEXT_(2,setup,"%s",cgdev->dev.bus_id);
        priv = cgdev->dev.driver_data;
        if (!priv)
 {
        struct claw_privbk *priv;
 
-       pr_debug("%s() called\n", __FUNCTION__);
+       pr_debug("%s() called\n", __func__);
        CLAW_DBF_TEXT_(2,setup,"%s",cgdev->dev.bus_id);
        priv = cgdev->dev.driver_data;
        if (!priv) {
-               printk(KERN_WARNING "claw: %s() no Priv exiting\n",__FUNCTION__);
+               printk(KERN_WARNING "claw: %s() no Priv exiting\n",__func__);
                return;
        }
        printk(KERN_INFO "claw: %s() called %s will be removed.\n",
-                       __FUNCTION__,cgdev->cdev[0]->dev.bus_id);
+                       __func__,cgdev->cdev[0]->dev.bus_id);
        if (cgdev->state == CCWGROUP_ONLINE)
                claw_shutdown_device(cgdev);
        claw_remove_files(&cgdev->dev);
 static int
 claw_add_files(struct device *dev)
 {
-       pr_debug("%s() called\n", __FUNCTION__);
+       pr_debug("%s() called\n", __func__);
        CLAW_DBF_TEXT(2,setup,"add_file");
        return sysfs_create_group(&dev->kobj, &claw_attr_group);
 }
 static void
 claw_remove_files(struct device *dev)
 {
-       pr_debug("%s() called\n", __FUNCTION__);
+       pr_debug("%s() called\n", __func__);
        CLAW_DBF_TEXT(2,setup,"rem_file");
        sysfs_remove_group(&dev->kobj, &claw_attr_group);
 }
        printk(KERN_INFO "claw: starting driver\n");
 
 #ifdef FUNCTRACE
-        printk(KERN_INFO "claw: %s() enter \n",__FUNCTION__);
+       printk(KERN_INFO "claw: %s() enter \n",__func__);
 #endif
        ret = claw_register_debug_facility();
        if (ret) {
                printk(KERN_WARNING "claw: %s() debug_register failed %d\n",
-                       __FUNCTION__,ret);
+                       __func__,ret);
                return ret;
        }
        CLAW_DBF_TEXT(2,setup,"init_mod");
        if (ret) {
                claw_unregister_debug_facility();
                printk(KERN_WARNING "claw; %s() cu3088 register failed %d\n",
-                       __FUNCTION__,ret);
+                       __func__,ret);
        }
 #ifdef FUNCTRACE
-        printk(KERN_INFO "claw: %s() exit \n",__FUNCTION__);
+       printk(KERN_INFO "claw: %s() exit \n",__func__);
 #endif
        return ret;
 }
 
        struct netiucv_priv *privptr = netdev_priv(conn->netdev);
        int rc;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
 
        if (!conn->netdev) {
                iucv_message_reject(conn->path, msg);
        struct ll_header header;
        int rc;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
 
        if (conn && conn->netdev)
                privptr = netdev_priv(conn->netdev);
        struct netiucv_priv *privptr = netdev_priv(netdev);
        int rc;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        conn->path = path;
        path->msglim = NETIUCV_QUEUELEN_DEFAULT;
        struct iucv_event *ev = arg;
        struct iucv_path *path = ev->data;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        iucv_path_sever(path, NULL);
 }
 
        struct net_device *netdev = conn->netdev;
        struct netiucv_priv *privptr = netdev_priv(netdev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        fsm_deltimer(&conn->timer);
        fsm_newstate(fi, CONN_STATE_IDLE);
        netdev->tx_queue_len = conn->path->msglim;
 {
        struct iucv_connection *conn = arg;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        fsm_deltimer(&conn->timer);
        iucv_path_sever(conn->path, NULL);
        fsm_newstate(fi, CONN_STATE_STARTWAIT);
        struct net_device *netdev = conn->netdev;
        struct netiucv_priv *privptr = netdev_priv(netdev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        fsm_deltimer(&conn->timer);
        iucv_path_sever(conn->path, NULL);
        struct iucv_connection *conn = arg;
        int rc;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        fsm_newstate(fi, CONN_STATE_STARTWAIT);
        PRINT_DEBUG("%s('%s'): connecting ...\n",
        struct net_device *netdev = conn->netdev;
        struct netiucv_priv *privptr = netdev_priv(netdev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        fsm_deltimer(&conn->timer);
        fsm_newstate(fi, CONN_STATE_STOPPED);
        struct net_device   *dev = arg;
        struct netiucv_priv *privptr = netdev_priv(dev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        fsm_newstate(fi, DEV_STATE_STARTWAIT);
        fsm_event(privptr->conn->fsm, CONN_EVENT_START, privptr->conn);
        struct netiucv_priv *privptr = netdev_priv(dev);
        struct iucv_event   ev;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        ev.conn = privptr->conn;
 
        struct net_device   *dev = arg;
        struct netiucv_priv *privptr = netdev_priv(dev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        switch (fsm_getstate(fi)) {
                case DEV_STATE_STARTWAIT:
 static void
 dev_action_conndown(fsm_instance *fi, int event, void *arg)
 {
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        switch (fsm_getstate(fi)) {
                case DEV_STATE_RUNNING:
        struct netiucv_priv *privptr = netdev_priv(dev);
        int rc;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        /**
         * Some sanity checks ...
         */
 {
        struct netiucv_priv *priv = netdev_priv(dev);
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return &priv->stats;
 }
 
  */
 static int netiucv_change_mtu(struct net_device * dev, int new_mtu)
 {
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        if (new_mtu < 576 || new_mtu > NETIUCV_MTU_MAX) {
                IUCV_DBF_TEXT(setup, 2, "given MTU out of valid range\n");
                return -EINVAL;
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%s\n", netiucv_printname(priv->conn->userid));
 }
 
        int     i;
        struct iucv_connection *cp;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        if (count > 9) {
                PRINT_WARN("netiucv: username too long (%d)!\n", (int) count);
                IUCV_DBF_TEXT_(setup, 2,
                            char *buf)
 {      struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%d\n", priv->conn->max_buffsize);
 }
 
        char         *e;
        int          bs1;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        if (count >= 39)
                return -EINVAL;
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%s\n", fsm_getstate_str(priv->fsm));
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%s\n", fsm_getstate_str(priv->conn->fsm));
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.maxmulti);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.maxmulti = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.maxcqueue);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.maxcqueue = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.doios_single);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.doios_single = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.doios_multi);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        priv->conn->prof.doios_multi = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.txlen);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.txlen = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.tx_time);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.tx_time = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.tx_pending);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.tx_pending = 0;
        return count;
 }
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 5, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 5, __func__);
        return sprintf(buf, "%ld\n", priv->conn->prof.tx_max_pending);
 }
 
 {
        struct netiucv_priv *priv = dev->driver_data;
 
-       IUCV_DBF_TEXT(trace, 4, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 4, __func__);
        priv->conn->prof.tx_max_pending = 0;
        return count;
 }
 {
        int ret;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        ret = sysfs_create_group(&dev->kobj, &netiucv_attr_group);
        if (ret)
                return ret;
 
 static void netiucv_remove_files(struct device *dev)
 {
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        sysfs_remove_group(&dev->kobj, &netiucv_stat_attr_group);
        sysfs_remove_group(&dev->kobj, &netiucv_attr_group);
 }
        int ret;
 
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        if (dev) {
                snprintf(dev->bus_id, BUS_ID_SIZE, "net%s", ndev->name);
 
 static void netiucv_unregister_device(struct device *dev)
 {
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        netiucv_remove_files(dev);
        device_unregister(dev);
 }
  */
 static void netiucv_remove_connection(struct iucv_connection *conn)
 {
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        write_lock_bh(&iucv_connection_rwlock);
        list_del_init(&conn->list);
        write_unlock_bh(&iucv_connection_rwlock);
 {
        struct netiucv_priv *privptr = netdev_priv(dev);
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
        if (!dev)
                return;
        struct netiucv_priv *priv;
        struct iucv_connection *cp;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        if (count>9) {
                PRINT_WARN("netiucv: username too long (%d)!\n", (int)count);
                IUCV_DBF_TEXT(setup, 2, "conn_write: too long\n");
        const char *p;
         int i;
 
-        IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
 
         if (count >= IFNAMSIZ)
                 count = IFNAMSIZ - 1;;
        struct netiucv_priv *priv;
        struct device *dev;
 
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
+       IUCV_DBF_TEXT(trace, 3, __func__);
        while (!list_empty(&iucv_connection_list)) {
                cp = list_entry(iucv_connection_list.next,
                                struct iucv_connection, list);
        rc = iucv_register(&netiucv_handler, 1);
        if (rc)
                goto out_dbf;
-       IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
-       netiucv_driver.groups = netiucv_drv_attr_groups;
+       IUCV_DBF_TEXT(trace, 3, __func__);
        rc = driver_register(&netiucv_driver);
        if (rc) {
                PRINT_ERR("NETIUCV: failed to register driver.\n");