Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] eth1394: workaround limitation in rawiso routines

Work around limitation in rawiso routines. Required with 1394b cards on
architectures where PAGE_SIZE is 4096. Based on a previous patch by Ben
Collins.

Signed-off-by: Jody McIntyre <scjody@steamballoon.com>
Cc: Ben Collins <bcollins@debian.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Jody McIntyre and committed by
Linus Torvalds
3ae3d0d4 998150c3

+11 -7
+5 -7
drivers/ieee1394/eth1394.c
··· 89 89 #define TRACE() printk(KERN_ERR "%s:%s[%d] ---- TRACE\n", driver_name, __FUNCTION__, __LINE__) 90 90 91 91 static char version[] __devinitdata = 92 - "$Rev: 1264 $ Ben Collins <bcollins@debian.org>"; 92 + "$Rev: 1312 $ Ben Collins <bcollins@debian.org>"; 93 93 94 94 struct fragment_info { 95 95 struct list_head list; ··· 221 221 if (priv->bc_state == ETHER1394_BC_ERROR) { 222 222 /* we'll try again */ 223 223 priv->iso = hpsb_iso_recv_init(priv->host, 224 - ETHER1394_GASP_BUFFERS * 2 * 225 - (1 << (priv->host->csr.max_rec + 226 - 1)), 224 + ETHER1394_ISO_BUF_SIZE, 227 225 ETHER1394_GASP_BUFFERS, 228 226 priv->broadcast_channel, 229 227 HPSB_ISO_DMA_PACKET_PER_BUFFER, ··· 633 635 * be checked when the eth device is opened. */ 634 636 priv->broadcast_channel = host->csr.broadcast_channel & 0x3f; 635 637 636 - priv->iso = hpsb_iso_recv_init(host, (ETHER1394_GASP_BUFFERS * 2 * 637 - (1 << (host->csr.max_rec + 1))), 638 + priv->iso = hpsb_iso_recv_init(host, 639 + ETHER1394_ISO_BUF_SIZE, 638 640 ETHER1394_GASP_BUFFERS, 639 641 priv->broadcast_channel, 640 642 HPSB_ISO_DMA_PACKET_PER_BUFFER, ··· 1768 1770 static void ether1394_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) 1769 1771 { 1770 1772 strcpy (info->driver, driver_name); 1771 - strcpy (info->version, "$Rev: 1264 $"); 1773 + strcpy (info->version, "$Rev: 1312 $"); 1772 1774 /* FIXME XXX provide sane businfo */ 1773 1775 strcpy (info->bus_info, "ieee1394"); 1774 1776 }
+6
drivers/ieee1394/eth1394.h
··· 44 44 45 45 #define ETHER1394_GASP_BUFFERS 16 46 46 47 + /* rawiso buffer size - due to a limitation in rawiso, we must limit each 48 + * GASP buffer to be less than PAGE_SIZE. */ 49 + #define ETHER1394_ISO_BUF_SIZE ETHER1394_GASP_BUFFERS * \ 50 + min((unsigned int)PAGE_SIZE, \ 51 + 2 * (1U << (priv->host->csr.max_rec + 1))) 52 + 47 53 /* Node set == 64 */ 48 54 #define NODE_SET (ALL_NODES + 1) 49 55