How does one differentiate a linear and non linear model? Is it based on weights or feature values?
I've only heard / read about it in "a model is linear / nonlinear with respect to the features". This is usually the interesting thing. I don't see how having a term wi2 in your model will help you as it is essentially a constant. Only the features change during testing time.
So a linear model is something that can be expressed as
where the wi define your model and the xi are your input. Different wi result in a different model (but they are all linear with respect to the features). If your model does not fit to that scheme, then your model is not linear with respect to the features.
Now, you can add new features which are essentially only (handcrafted) non-linear transformations of the input. For example, you could make a model
You could argue that this is a non-linear model with respect to the input. However, you can also argue that it is essentially the model
I think the important part here is that it was hand-crafted. You changed the feature space, not the abilities of the model. So it is still a linear model, but in another feature-space. When you go this way, you can make any model to be non-linear.
After all: Does it really matter? It sounds a bit like you're preparing for an exam. If this is the case, I suggest to just ask your lecturer and stick with what he defines as linear / non-linear.