The fighting between the forces supporting Saul's family and those supporting David went on for a long time. As David became stronger and stronger, his opponents became weaker and weaker.
But they did not drive out the Canaanites who lived in Gezer, so the Canaanites have lived among the Ephraimites to this day, but they have been forced to work as slaves.
The tribe of Zebulun did not drive out the people living in the cities of Kitron and Nahalal, and so the Canaanites continued to live there with them and were forced to work for them.
The tribe of Naphtali did not drive out the people living in the cities of Beth Shemesh and Bethanath. The people of Naphtali lived with the local Canaanites, but forced them to work for them.
The Amorites continued to live at Aijalon, Shaalbim, and Mount Heres, but the tribes of Ephraim and Manasseh kept them under their rule and forced them to work for them.