| .. | .. |
|---|
| 569 | 569 | fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch); |
|---|
| 570 | 570 | spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags); |
|---|
| 571 | 571 | ch->prof.send_stamp = jiffies; |
|---|
| 572 | | - rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], |
|---|
| 573 | | - (unsigned long)ch, 0xff, 0); |
|---|
| 572 | + rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], 0, 0xff, 0); |
|---|
| 574 | 573 | spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags); |
|---|
| 575 | 574 | if (ccw_idx == 3) |
|---|
| 576 | 575 | ch->prof.doios_single++; |
|---|
| .. | .. |
|---|
| 833 | 832 | |
|---|
| 834 | 833 | spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags); |
|---|
| 835 | 834 | ch->prof.send_stamp = jiffies; |
|---|
| 836 | | - rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], |
|---|
| 837 | | - (unsigned long)ch, 0xff, 0); |
|---|
| 835 | + rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], 0, 0xff, 0); |
|---|
| 838 | 836 | spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags); |
|---|
| 839 | 837 | if (ccw_idx == 3) |
|---|
| 840 | 838 | ch->prof.doios_single++; |
|---|
| .. | .. |
|---|
| 867 | 865 | /** |
|---|
| 868 | 866 | * Start transmission of a packet. |
|---|
| 869 | 867 | * Called from generic network device layer. |
|---|
| 870 | | - * |
|---|
| 871 | | - * skb Pointer to buffer containing the packet. |
|---|
| 872 | | - * dev Pointer to interface struct. |
|---|
| 873 | | - * |
|---|
| 874 | | - * returns 0 if packet consumed, !0 if packet rejected. |
|---|
| 875 | | - * Note: If we return !0, then the packet is free'd by |
|---|
| 876 | | - * the generic network layer. |
|---|
| 877 | 868 | */ |
|---|
| 878 | 869 | /* first merge version - leaving both functions separated */ |
|---|
| 879 | | -static int ctcm_tx(struct sk_buff *skb, struct net_device *dev) |
|---|
| 870 | +static netdev_tx_t ctcm_tx(struct sk_buff *skb, struct net_device *dev) |
|---|
| 880 | 871 | { |
|---|
| 881 | 872 | struct ctcm_priv *priv = dev->ml_priv; |
|---|
| 882 | 873 | |
|---|
| .. | .. |
|---|
| 919 | 910 | } |
|---|
| 920 | 911 | |
|---|
| 921 | 912 | /* unmerged MPC variant of ctcm_tx */ |
|---|
| 922 | | -static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) |
|---|
| 913 | +static netdev_tx_t ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) |
|---|
| 923 | 914 | { |
|---|
| 924 | 915 | int len = 0; |
|---|
| 925 | 916 | struct ctcm_priv *priv = dev->ml_priv; |
|---|
| .. | .. |
|---|
| 1074 | 1065 | if (grp) { |
|---|
| 1075 | 1066 | if (grp->fsm) |
|---|
| 1076 | 1067 | kfree_fsm(grp->fsm); |
|---|
| 1077 | | - if (grp->xid_skb) |
|---|
| 1078 | | - dev_kfree_skb(grp->xid_skb); |
|---|
| 1079 | | - if (grp->rcvd_xid_skb) |
|---|
| 1080 | | - dev_kfree_skb(grp->rcvd_xid_skb); |
|---|
| 1068 | + dev_kfree_skb(grp->xid_skb); |
|---|
| 1069 | + dev_kfree_skb(grp->rcvd_xid_skb); |
|---|
| 1081 | 1070 | tasklet_kill(&grp->mpc_tasklet2); |
|---|
| 1082 | 1071 | kfree(grp); |
|---|
| 1083 | 1072 | priv->mpcg = NULL; |
|---|
| .. | .. |
|---|
| 1702 | 1691 | put_device(&cgdev->dev); |
|---|
| 1703 | 1692 | } |
|---|
| 1704 | 1693 | |
|---|
| 1705 | | -static int ctcm_pm_suspend(struct ccwgroup_device *gdev) |
|---|
| 1706 | | -{ |
|---|
| 1707 | | - struct ctcm_priv *priv = dev_get_drvdata(&gdev->dev); |
|---|
| 1708 | | - |
|---|
| 1709 | | - if (gdev->state == CCWGROUP_OFFLINE) |
|---|
| 1710 | | - return 0; |
|---|
| 1711 | | - netif_device_detach(priv->channel[CTCM_READ]->netdev); |
|---|
| 1712 | | - ctcm_close(priv->channel[CTCM_READ]->netdev); |
|---|
| 1713 | | - if (!wait_event_timeout(priv->fsm->wait_q, |
|---|
| 1714 | | - fsm_getstate(priv->fsm) == DEV_STATE_STOPPED, CTCM_TIME_5_SEC)) { |
|---|
| 1715 | | - netif_device_attach(priv->channel[CTCM_READ]->netdev); |
|---|
| 1716 | | - return -EBUSY; |
|---|
| 1717 | | - } |
|---|
| 1718 | | - ccw_device_set_offline(gdev->cdev[1]); |
|---|
| 1719 | | - ccw_device_set_offline(gdev->cdev[0]); |
|---|
| 1720 | | - return 0; |
|---|
| 1721 | | -} |
|---|
| 1722 | | - |
|---|
| 1723 | | -static int ctcm_pm_resume(struct ccwgroup_device *gdev) |
|---|
| 1724 | | -{ |
|---|
| 1725 | | - struct ctcm_priv *priv = dev_get_drvdata(&gdev->dev); |
|---|
| 1726 | | - int rc; |
|---|
| 1727 | | - |
|---|
| 1728 | | - if (gdev->state == CCWGROUP_OFFLINE) |
|---|
| 1729 | | - return 0; |
|---|
| 1730 | | - rc = ccw_device_set_online(gdev->cdev[1]); |
|---|
| 1731 | | - if (rc) |
|---|
| 1732 | | - goto err_out; |
|---|
| 1733 | | - rc = ccw_device_set_online(gdev->cdev[0]); |
|---|
| 1734 | | - if (rc) |
|---|
| 1735 | | - goto err_out; |
|---|
| 1736 | | - ctcm_open(priv->channel[CTCM_READ]->netdev); |
|---|
| 1737 | | -err_out: |
|---|
| 1738 | | - netif_device_attach(priv->channel[CTCM_READ]->netdev); |
|---|
| 1739 | | - return rc; |
|---|
| 1740 | | -} |
|---|
| 1741 | | - |
|---|
| 1742 | 1694 | static struct ccw_device_id ctcm_ids[] = { |
|---|
| 1743 | 1695 | {CCW_DEVICE(0x3088, 0x08), .driver_info = ctcm_channel_type_parallel}, |
|---|
| 1744 | 1696 | {CCW_DEVICE(0x3088, 0x1e), .driver_info = ctcm_channel_type_ficon}, |
|---|
| .. | .. |
|---|
| 1768 | 1720 | .remove = ctcm_remove_device, |
|---|
| 1769 | 1721 | .set_online = ctcm_new_device, |
|---|
| 1770 | 1722 | .set_offline = ctcm_shutdown_device, |
|---|
| 1771 | | - .freeze = ctcm_pm_suspend, |
|---|
| 1772 | | - .thaw = ctcm_pm_resume, |
|---|
| 1773 | | - .restore = ctcm_pm_resume, |
|---|
| 1774 | 1723 | }; |
|---|
| 1775 | 1724 | |
|---|
| 1776 | 1725 | static ssize_t group_store(struct device_driver *ddrv, const char *buf, |
|---|