| lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
|
Open Source and information security mailing list archives
| ||
|
Message-ID: <AANLkTimz7gx7BAQG8RBswDCxnTuVtt3u+YoBZk8+RgEz@mail.gmail.com> Date: Tue, 25 Jan 2011 10:46:29 +0800 From: Po-Yu Chuang <ratbert.chuang@...il.com> To: Michał Mirosław <mirqus@...il.com> Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, bhutchings@...arflare.com, eric.dumazet@...il.com, joe@...ches.com, dilinger@...ued.net, Po-Yu Chuang <ratbert@...aday-tech.com> Subject: Re: [PATCH v4] net: add Faraday FTMAC100 10/100 Ethernet driver Dear Michał, 2011/1/25 Michał Mirosław <mirqus@...il.com>: > W dniu 24 stycznia 2011 09:26 użytkownik Po-Yu Chuang > <ratbert.chuang@...il.com> napisał: >> 2011/1/21 Michał Mirosław <mirqus@...il.com>: >>> Did you test this? This looks like it will result in double free after >>> packet RX, as you are giving the same page (referenced once) to two >>> distinct RX descriptors, that may be assigned different packets. >> >> Yes, this is tested. >> >>> Since your not implementing any RX offloads, you might just allocate >>> fresh skb's with alloc_skb() and store skb pointer in rxdes3. Since >> >> rxdes3 does not store virtual address of an skb. >> It stores the address of the buffer allocated while open() and freed >> only when stop(). >> The data in that buffer will be memcpy()ed to an skb allocated in >> ftmac100_rx_packet(). >> No double free happens. > > Ah, I blindly assumed that you're just appending the buffers to the > skb (using skb_fill_page_desc() and friends). Since you have to mark > descriptors for the device anyway, it might be faster to allocate new > skbs and map those as rx buffers (changing the descriptor's buffer > address after every RX) instead of keeping static buffer and copying > every time. (For small packets it wastes lot of memory, though - so > the right choice depends on the expected workload.) The reason I chose to use memcpy rx buffer to skb is that I didn't know how to deal with multi-segment packets if I preallocated skb for each rx descriptor. This function seems to be what I need. Let me rework this. Thanks. best regards, Po-Yu Chuang -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists