Currently, before returning scan results, cfg80211_bss_expire() get's called. It deletes BSSs that are older than IEEE80211_SCAN_RESULT_EXPIRE. I propose to change cfg80211_bss_expire() so that it doesn't hard-code NL80211_CMD_TRIGGER_SCAN anymore, but has a new parameter, say "int expire". Then NL80211_CMD_TRIGGER_SCAN get's a new optional attribute, say NL80211_ATTR_SCAN_EXPIRE. If that attribut exists when calling NL80211_CMD_TRIGGER_SCAN, it's value will be used to call cfg80211_bss_expire(). If the value is zero, cfg80211_bss_expire() triggers the whole rdev->bss_list. That means we do a completely fresh scan. If it doesn't exists, cfg80211_bss_expire() won't be called at scan-trigger time. NL80211_CMD_GET_SCAN could get this attribute as well. If not specified, then the default of NL80211_CMD_TRIGGER_SCAN will be used. That is, just right now, the rdev->bss_list will expire like now. However, if a value will be specified, then the bss_list will be expired with the specified expiry time. Specifying zero doesn't make sense here, because that would zap the freshly made bss list. So a zero could mean "Don't expire anything". That way user-space could ask for what has scanned the last time, even when this has been one hour ago --- with no scans in the meantime. Does this make sense? -- http://www.holgerschurig.de -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html