]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/usb/atm/usbatm.c
[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}
[net-next-2.6.git] / drivers / usb / atm / usbatm.c
index 4d8f282b23d1408765d628100f7e8f5ad7a9981c..d287c575522952841bbdd7912611aaf55b90439d 100644 (file)
@@ -335,12 +335,12 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
 
        sarb = instance->cached_vcc->sarb;
 
-       if (skb_tail_pointer(sarb) + ATM_CELL_PAYLOAD > sarb->end) {
+       if (sarb->tail + ATM_CELL_PAYLOAD > sarb->end) {
                atm_rldbg(instance, "%s: buffer overrun (sarb->len %u, vcc: 0x%p)!\n",
                                __func__, sarb->len, vcc);
                /* discard cells already received */
                skb_trim(sarb, 0);
-               UDSL_ASSERT(skb_tail_pointer(sarb) + ATM_CELL_PAYLOAD <= sarb->end);
+               UDSL_ASSERT(sarb->tail + ATM_CELL_PAYLOAD <= sarb->end);
        }
 
        memcpy(skb_tail_pointer(sarb), source + ATM_CELL_HEADER, ATM_CELL_PAYLOAD);
@@ -484,7 +484,7 @@ static unsigned int usbatm_write_cells(struct usbatm_data *instance,
                ptr[4] = 0xec;
                ptr += ATM_CELL_HEADER;
 
-               memcpy(ptr, skb->data, data_len);
+               skb_copy_from_linear_data(skb, ptr, data_len);
                ptr += data_len;
                __skb_pull(skb, data_len);