Showing error 559

User: Jiri Slaby
Error type: Calling function from invalid context
Error type description: Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers
File location: drivers/mtd/chips/cfi_cmdset_0001.c
Line in file: 1219
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

1189        spin_unlock(chip->mutex);
1190        if (inval_len)
1191                INVALIDATE_CACHED_RANGE(map, inval_adr, inval_len);
1192        spin_lock(chip->mutex);
1193
1194        timeo = chip_op_time_max;
1195        if (!timeo)
1196                timeo = 500000;
1197        reset_timeo = timeo;
1198        sleep_time = chip_op_time / 2;
1199
1200        for (;;) {
1201                status = map_read(map, cmd_adr);
1202                if (map_word_andequal(map, status, status_OK, status_OK))
1203                        break;
1204
1205                if (!timeo) {
1206                        map_write(map, CMD(0x70), cmd_adr);
1207                        chip->state = FL_STATUS;
1208                        return -ETIME;
1209                }
1210
1211                /* OK Still waiting. Drop the lock, wait a while and retry. */
1212                spin_unlock(chip->mutex);
1213                if (sleep_time >= 1000000/HZ) {
1214                        /*
1215                         * Half of the normal delay still remaining
1216                         * can be performed with a sleeping delay instead
1217                         * of busy waiting.
1218                         */
1219                        msleep(sleep_time/1000);
1220                        timeo -= sleep_time;
1221                        sleep_time = 1000000/HZ;
1222                } else {
1223                        udelay(1);
1224                        cond_resched();
1225                        timeo--;
1226                }
1227                spin_lock(chip->mutex);
1228
1229                while (chip->state != chip_state) {
Show full sources