--- drivers/net/wireless/ti/wl12xx/main.c +++ drivers/net/wireless/ti/wl12xx/main.c Thanks to ryao for explaining the fix on ZFS! @@ -612,6 +612,10 @@ } } +static struct wlcore_ops wl127x_ops = { + .prepare_read = wl127x_prepare_read +}; + static int wl12xx_identify_chip(struct wl1271 *wl) { int ret = 0; @@ -631,7 +635,8 @@ sizeof(wl->conf.mem)); /* read data preparation is only needed by wl127x */ - wl->ops->prepare_read = wl127x_prepare_read; + /* wl->ops->prepare_read = wl127x_prepare_read; */ + wl->ops = &wl127x_ops; break; @@ -650,7 +655,8 @@ sizeof(wl->conf.mem)); /* read data preparation is only needed by wl127x */ - wl->ops->prepare_read = wl127x_prepare_read; + /* wl->ops->prepare_read = wl127x_prepare_read; */ + wl->ops = &wl127x_ops; break;