The atmdev_ops::send_oam device operation and the atm_vcc::push_oam callback were the kernel's interface for raw F4/F5 OAM cell exchange. Nothing assigns them a non-NULL value and nothing ever invokes them: the core only ever initialises push_oam to NULL (in vcc_create() and the AAL init helpers) and the Solos driver only lists send_oam = NULL for documentation. The drivers that actually drove OAM through these hooks were removed along with the legacy ATM adapters. Drop both callbacks and the NULL initialisers.
Unified · Split
| @@ -1180,7 +1180,6 @@ static const struct atmdev_ops fpga_ops = { · 1179 unmodified lines | ||
| 1180 | 1180 | .close = pclose, |
| 1181 | 1181 | .ioctl = NULL, |
| 1182 | 1182 | .send = psend, |
| 1183 | − .send_oam = NULL, | |
| 1184 | 1183 | .phy_put = NULL, |
| 1185 | 1184 | .phy_get = NULL, |
| 1186 | 1185 | .change_qos = NULL, |
| @@ -104,7 +104,6 @@ struct atm_vcc { · 103 unmodified lines | ||
| 104 | 104 | void (*release_cb)(struct atm_vcc *vcc); /* release_sock callback */ |
| 105 | 105 | void (*push)(struct atm_vcc *vcc,struct sk_buff *skb); |
| 106 | 106 | void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */ |
| 107 | − int (*push_oam)(struct atm_vcc *vcc,void *cell); | |
| 108 | 107 | int (*send)(struct atm_vcc *vcc,struct sk_buff *skb); |
| 109 | 108 | void *dev_data; /* per-device data */ |
| 110 | 109 | void *proto_data; /* per-protocol data */ |
| @@ -170,12 +169,6 @@ struct atm_dev { · 59 unmodified lines | ||
| 170 | 169 | struct list_head dev_list; /* linkage */ |
| 171 | 170 | }; |
| 172 | 171 | |
| 173 | − | |
| 174 | −/* OF: send_Oam Flags */ | |
| 175 | − | |
| 176 | −#define ATM_OF_IMMED 1 /* Attempt immediate delivery */ | |
| 177 | −#define ATM_OF_INRATE 2 /* Attempt in-rate delivery */ | |
| 178 | − | |
| 179 | 172 | struct atmdev_ops { /* only send is required */ |
| 180 | 173 | void (*dev_close)(struct atm_dev *dev); |
| 181 | 174 | int (*open)(struct atm_vcc *vcc); |
| @@ -188,7 +181,6 @@ struct atmdev_ops { /* only send is required */ · 6 unmodified lines | ||
| 188 | 181 | int (*pre_send)(struct atm_vcc *vcc, struct sk_buff *skb); |
| 189 | 182 | int (*send)(struct atm_vcc *vcc,struct sk_buff *skb); |
| 190 | 183 | int (*send_bh)(struct atm_vcc *vcc, struct sk_buff *skb); |
| 191 | − int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags); | |
| 192 | 184 | void (*phy_put)(struct atm_dev *dev,unsigned char value, |
| 193 | 185 | unsigned long addr); |
| 194 | 186 | unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr); |
| @@ -163,7 +163,6 @@ int vcc_create(struct net *net, struct socket *sock, int protocol, int family, i · 162 unmodified lines | ||
| 163 | 163 | vcc->push = NULL; |
| 164 | 164 | vcc->pop = NULL; |
| 165 | 165 | vcc->owner = NULL; |
| 166 | − vcc->push_oam = NULL; | |
| 167 | 166 | vcc->release_cb = NULL; |
| 168 | 167 | vcc->vpi = vcc->vci = 0; /* no VCI/VPI yet */ |
| 169 | 168 | vcc->atm_options = vcc->aal_options = 0; |
| @@ -63,7 +63,6 @@ int atm_init_aal0(struct atm_vcc *vcc) · 62 unmodified lines | ||
| 63 | 63 | { |
| 64 | 64 | vcc->push = atm_push_raw; |
| 65 | 65 | vcc->pop = atm_pop_raw; |
| 66 | − vcc->push_oam = NULL; | |
| 67 | 66 | vcc->send = atm_send_aal0; |
| 68 | 67 | return 0; |
| 69 | 68 | } |
| @@ -72,7 +71,6 @@ int atm_init_aal5(struct atm_vcc *vcc) · 2 unmodified lines | ||
| 72 | 71 | { |
| 73 | 72 | vcc->push = atm_push_raw; |
| 74 | 73 | vcc->pop = atm_pop_raw; |
| 75 | − vcc->push_oam = NULL; | |
| 76 | 74 | if (vcc->dev->ops->send_bh) |
| 77 | 75 | vcc->send = vcc->dev->ops->send_bh; |
| 78 | 76 | else |