What about:
INT32 rdfapp(struct control *rdf)
{
pred_data_attr * mdata = &rdf->mcfg.mdata;
The namings in your code are another good example how inappropriate naming can lead to irritations and errors.
It is not a good idea to name different things the same:
pred_data_attr * mdata /* here mdata is a pointer */
pred_data_attr mdata; /* here mdata is the instance of a structure */
There are plenty of possiblilites how naming can be setup, from which I do not want to recommend any here as it's primarily about:
Give different names to different things.