Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ae3d0d4 authored by Jody McIntyre's avatar Jody McIntyre Committed by Linus Torvalds
Browse files

[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: default avatarJody McIntyre <scjody@steamballoon.com>
Cc: Ben Collins <bcollins@debian.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 998150c3
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@
#define TRACE() printk(KERN_ERR "%s:%s[%d] ---- TRACE\n", driver_name, __FUNCTION__, __LINE__)

static char version[] __devinitdata =
	"$Rev: 1264 $ Ben Collins <bcollins@debian.org>";
	"$Rev: 1312 $ Ben Collins <bcollins@debian.org>";

struct fragment_info {
	struct list_head list;
@@ -221,9 +221,7 @@ static int ether1394_open (struct net_device *dev)
	if (priv->bc_state == ETHER1394_BC_ERROR) {
		/* we'll try again */
		priv->iso = hpsb_iso_recv_init(priv->host,
					       ETHER1394_GASP_BUFFERS * 2 *
					       (1 << (priv->host->csr.max_rec +
						      1)),
					       ETHER1394_ISO_BUF_SIZE,
					       ETHER1394_GASP_BUFFERS,
					       priv->broadcast_channel,
					       HPSB_ISO_DMA_PACKET_PER_BUFFER,
@@ -635,8 +633,8 @@ static void ether1394_add_host (struct hpsb_host *host)
	 * be checked when the eth device is opened. */
	priv->broadcast_channel = host->csr.broadcast_channel & 0x3f;

	priv->iso = hpsb_iso_recv_init(host, (ETHER1394_GASP_BUFFERS * 2 *
					      (1 << (host->csr.max_rec + 1))),
	priv->iso = hpsb_iso_recv_init(host,
				       ETHER1394_ISO_BUF_SIZE,
				       ETHER1394_GASP_BUFFERS,
				       priv->broadcast_channel,
				       HPSB_ISO_DMA_PACKET_PER_BUFFER,
@@ -1770,7 +1768,7 @@ fail:
static void ether1394_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
{
	strcpy (info->driver, driver_name);
	strcpy (info->version, "$Rev: 1264 $");
	strcpy (info->version, "$Rev: 1312 $");
	/* FIXME XXX provide sane businfo */
	strcpy (info->bus_info, "ieee1394");
}
+6 −0
Original line number Diff line number Diff line
@@ -44,6 +44,12 @@

#define ETHER1394_GASP_BUFFERS 16

/* rawiso buffer size - due to a limitation in rawiso, we must limit each
 * GASP buffer to be less than PAGE_SIZE. */
#define ETHER1394_ISO_BUF_SIZE	ETHER1394_GASP_BUFFERS *                        \
				   min((unsigned int)PAGE_SIZE,                 \
				       2 * (1U << (priv->host->csr.max_rec + 1)))

/* Node set == 64 */
#define NODE_SET			(ALL_NODES + 1)