ibmvfc: Add support for collaborative memory overcommit

Adds support to the ibmvfc driver for collaborative memory overcommit.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Brian King 2008-07-24 04:35:48 +10:00 committed by Benjamin Herrenschmidt
parent 7912a0ac59
commit 39c1ffecc6

View File

@ -3819,6 +3819,20 @@ static int ibmvfc_remove(struct vio_dev *vdev)
return 0; return 0;
} }
/**
* ibmvfc_get_desired_dma - Calculate DMA resources needed by the driver
* @vdev: vio device struct
*
* Return value:
* Number of bytes the driver will need to DMA map at the same time in
* order to perform well.
*/
static unsigned long ibmvfc_get_desired_dma(struct vio_dev *vdev)
{
unsigned long pool_dma = max_requests * sizeof(union ibmvfc_iu);
return pool_dma + ((512 * 1024) * driver_template.cmd_per_lun);
}
static struct vio_device_id ibmvfc_device_table[] __devinitdata = { static struct vio_device_id ibmvfc_device_table[] __devinitdata = {
{"fcp", "IBM,vfc-client"}, {"fcp", "IBM,vfc-client"},
{ "", "" } { "", "" }
@ -3829,6 +3843,7 @@ static struct vio_driver ibmvfc_driver = {
.id_table = ibmvfc_device_table, .id_table = ibmvfc_device_table,
.probe = ibmvfc_probe, .probe = ibmvfc_probe,
.remove = ibmvfc_remove, .remove = ibmvfc_remove,
.get_desired_dma = ibmvfc_get_desired_dma,
.driver = { .driver = {
.name = IBMVFC_NAME, .name = IBMVFC_NAME,
.owner = THIS_MODULE, .owner = THIS_MODULE,