9
0
Fork 0

fs: nfs: pick up network interface bootargs parameter

This adds the linux.bootarg device parameter from the network device of
the current nfs connection and adds it to the nfs bootargs line.

This allows booting from nfs without manually setting a ip=dhcp or
ip=<ipaddr> option.

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Enrico Jorns 2016-09-19 18:03:49 +02:00 committed by Sascha Hauer
parent 841d83ff0a
commit b6ca0241b0
1 changed files with 8 additions and 0 deletions

View File

@ -1314,6 +1314,7 @@ static char *rootnfsopts;
static void nfs_set_rootarg(struct nfs_priv *npriv, struct fs_device_d *fsdev)
{
char *str, *tmp;
const char *bootargs;
str = basprintf("root=/dev/nfs nfsroot=%pI4:%s%s%s", &npriv->server, npriv->path,
rootnfsopts[0] ? "," : "", rootnfsopts);
@ -1331,6 +1332,13 @@ static void nfs_set_rootarg(struct nfs_priv *npriv, struct fs_device_d *fsdev)
str = tmp;
}
bootargs = dev_get_param(&npriv->con->edev->dev, "linux.bootargs");
if (bootargs) {
tmp = basprintf("%s %s", str, bootargs);
free(str);
str = tmp;
}
fsdev_set_linux_rootarg(fsdev, str);
free(str);