[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>
This commit is contained in:
parent
998150c3d3
commit
3ae3d0d4ae
2 changed files with 11 additions and 7 deletions
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue