From: Ye Jianjun (Joey) <joeyye@trident.com.cn>

Fix: copy frontend_ops before modifying

Signed-off-by: Ye Jianjun (Joey) <joeyye@trident.com.cn>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/media/dvb/dvb-usb/dtt200u-fe.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN drivers/media/dvb/dvb-usb/dtt200u-fe.c~dvb-usb-dtt200u-copy-frontend_ops-before-modifying drivers/media/dvb/dvb-usb/dtt200u-fe.c
--- devel/drivers/media/dvb/dvb-usb/dtt200u-fe.c~dvb-usb-dtt200u-copy-frontend_ops-before-modifying	2005-09-04 16:51:34.000000000 -0700
+++ devel-akpm/drivers/media/dvb/dvb-usb/dtt200u-fe.c	2005-09-04 16:51:34.000000000 -0700
@@ -18,6 +18,7 @@ struct dtt200u_fe_state {
 
 	struct dvb_frontend_parameters fep;
 	struct dvb_frontend frontend;
+	struct dvb_frontend_ops ops;
 };
 
 static int dtt200u_fe_read_status(struct dvb_frontend* fe, fe_status_t *stat)
@@ -163,8 +164,9 @@ struct dvb_frontend* dtt200u_fe_attach(s
 	deb_info("attaching frontend dtt200u\n");
 
 	state->d = d;
+	memcpy(&state->ops,&dtt200u_fe_ops,sizeof(struct dvb_frontend_ops));
 
-	state->frontend.ops = &dtt200u_fe_ops;
+	state->frontend.ops = &state->ops;
 	state->frontend.demodulator_priv = state;
 
 	goto success;
_