-@@ -375,6 +397,8 @@
- void (*feedback)(struct atm_vcc *vcc,struct sk_buff *skb,
- unsigned long start,unsigned long dest,int len);
- int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
-+ void (*free_rx_skb)(struct atm_vcc *vcc, struct sk_buff *skb);
-+ /* @@@ temporary hack */
- int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
- struct module *owner;
- };
-@@ -389,6 +413,7 @@
-
- struct atm_skb_data {
- struct atm_vcc *vcc; /* ATM VCC */
-+ int iovcnt; /* 0 for "normal" operation */
- unsigned long atm_options; /* ATM layer options */
- };
-
-@@ -399,11 +424,10 @@
-
- struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
- int number,atm_dev_flags_t *flags); /* number == -1: pick first available */
--struct atm_dev *atm_dev_lookup(int number);
-+struct atm_dev *atm_find_dev(int number);
- void atm_dev_deregister(struct atm_dev *dev);
- void shutdown_atm_dev(struct atm_dev *dev);
--void vcc_insert_socket(struct sock *sk);
--void vcc_remove_socket(struct sock *sk);
-+void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev);
-
-
- /*
-@@ -411,54 +435,52 @@
- *
- */
-
--static inline int atm_guess_pdu2truesize(int size)
-+static __inline__ int atm_guess_pdu2truesize(int pdu_size)
- {
-- return (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info));
-+ return ((pdu_size+15) & ~15) + sizeof(struct sk_buff);
- }
-
-
--static inline void atm_force_charge(struct atm_vcc *vcc,int truesize)
-+static __inline__ void atm_force_charge(struct atm_vcc *vcc,int truesize)
- {
-- atomic_add(truesize, &vcc->sk->rmem_alloc);
-+ atomic_add(truesize+ATM_PDU_OVHD,&vcc->rx_inuse);
- }
-
-
--static inline void atm_return(struct atm_vcc *vcc,int truesize)
-+static __inline__ void atm_return(struct atm_vcc *vcc,int truesize)
- {
-- atomic_sub(truesize, &vcc->sk->rmem_alloc);
-+ atomic_sub(truesize+ATM_PDU_OVHD,&vcc->rx_inuse);
- }
-
-
--static inline int atm_may_send(struct atm_vcc *vcc,unsigned int size)
-+static __inline__ int atm_may_send(struct atm_vcc *vcc,unsigned int size)
- {
-- return (size + atomic_read(&vcc->sk->wmem_alloc)) < vcc->sk->sndbuf;
-+ return size+atomic_read(&vcc->tx_inuse)+ATM_PDU_OVHD < vcc->sk->sndbuf;
- }
-
-
-+int atm_charge(struct atm_vcc *vcc,int truesize);
-+struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
-+ int gfp_flags);
-+int atm_find_ci(struct atm_vcc *vcc,short *vpi,int *vci);
-+int atm_pcr_goal(struct atm_trafprm *tp);
-+
-+void atm_async_release_vcc(struct atm_vcc *vcc,int reply);
-+
- static inline void atm_dev_hold(struct atm_dev *dev)
- {
-- atomic_inc(&dev->refcnt);
-+ atomic_inc(&dev->refcnt);
- }
-
--
- static inline void atm_dev_put(struct atm_dev *dev)
- {
-- atomic_dec(&dev->refcnt);
-+ atomic_dec(&dev->refcnt);
-
-- if ((atomic_read(&dev->refcnt) == 1) &&
-- test_bit(ATM_DF_CLOSE,&dev->flags))
-- shutdown_atm_dev(dev);
-+ if ((atomic_read(&dev->refcnt) == 1) &&
-+ test_bit(ATM_DF_CLOSE,&dev->flags))
-+ shutdown_atm_dev(dev);
- }
-
--
--int atm_charge(struct atm_vcc *vcc,int truesize);
--struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
-- int gfp_flags);
--int atm_find_ci(struct atm_vcc *vcc,short *vpi,int *vci);
--int atm_pcr_goal(struct atm_trafprm *tp);
--
--void vcc_release_async(struct atm_vcc *vcc, int reply);
--
- #endif /* __KERNEL__ */
-
- #endif
-diff -urN linux.old/include/linux/atm.h linux.dev/include/linux/atm.h
---- linux.old/include/linux/atm.h 2001-11-22 20:48:41.000000000 +0100
-+++ linux.dev/include/linux/atm.h 2005-07-10 08:02:01.476106496 +0200
-@@ -135,9 +135,12 @@
- unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */
- int max_pcr; /* maximum PCR in cells per second */
- int pcr; /* desired PCR in cells per second */
-+ int scr; /* desired SCR in cells per second */
- int min_pcr; /* minimum PCR in cells per second */
- int max_cdv; /* maximum CDV in microseconds */
- int max_sdu; /* maximum SDU in bytes */
-+ /* Ron remove for old tiatm driver 1.00.09 */
-+ //int mbs; /* Maximum Burst size */
- /* extra params for ABR */
- unsigned int icr; /* Initial Cell Rate (24-bit) */
- unsigned int tbe; /* Transient Buffer Exposure (24-bit) */