I ported STAR 9100 network driver without a documentation, I just blindly use the old driver and modify it to fit with all of the changes in the networking stuff since kernel 2.4.27. The driver claims to support scatter/gather I/O, but there is no implementation of scatter gather I/O in the hard_start_xmit function. I don’t know whether this device supports it or not, so I just change this line:
dev->features |= NETIF_F_SG|NETIF_F_IP_CSUM
dev->features |= NETIF_F_IP_CSUM
And now the sendfile function works (although it would be faster if the driver supports scatter/gather IO).